SYMBOL INDEX (346 symbols across 47 files) FILE: api/api.go function Request (line 13) | func Request(req *http.Request) (*simplejson.Json, error) { function RequestJson (line 35) | func RequestJson(req *http.Request, v interface{}) error { function RequestUnparsedResponse (line 53) | func RequestUnparsedResponse(url string, header http.Header) (resp *http... FILE: api/api_test.go function testBackend (line 14) | func testBackend(response_code int, payload string) *httptest.Server { function TestRequest (line 22) | func TestRequest(t *testing.T) { function TestRequestFailure (line 34) | func TestRequestFailure(t *testing.T) { function TestHttpErrorCode (line 50) | func TestHttpErrorCode(t *testing.T) { function TestJsonParsingError (line 61) | func TestJsonParsingError(t *testing.T) { function TestRequestUnparsedResponseUsingAccessTokenParameter (line 73) | func TestRequestUnparsedResponseUsingAccessTokenParameter(t *testing.T) { function TestRequestUnparsedResponseUsingAccessTokenParameterFailedResponse (line 96) | func TestRequestUnparsedResponseUsingAccessTokenParameterFailedResponse(... function TestRequestUnparsedResponseUsingHeaders (line 107) | func TestRequestUnparsedResponseUsingHeaders(t *testing.T) { FILE: cookie/cookies.go function Validate (line 22) | func Validate(cookie *http.Cookie, seed string, expiration time.Duration... function SignedValue (line 53) | func SignedValue(seed string, key string, value string, now time.Time) s... function cookieSignature (line 61) | func cookieSignature(args ...string) string { function checkHmac (line 71) | func checkHmac(input, expected string) bool { type Cipher (line 83) | type Cipher struct method Encrypt (line 97) | func (c *Cipher) Encrypt(value string) (string, error) { method Decrypt (line 110) | func (c *Cipher) Decrypt(s string) (string, error) { function NewCipher (line 88) | func NewCipher(secret []byte) (*Cipher, error) { FILE: cookie/cookies_test.go function TestEncodeAndDecodeAccessToken (line 10) | func TestEncodeAndDecodeAccessToken(t *testing.T) { function TestEncodeAndDecodeAccessTokenB64 (line 26) | func TestEncodeAndDecodeAccessTokenB64(t *testing.T) { FILE: cookie/nonce.go function Nonce (line 8) | func Nonce() (nonce string, err error) { FILE: env_options.go type EnvOptions (line 9) | type EnvOptions method LoadEnvForStruct (line 11) | func (cfg EnvOptions) LoadEnvForStruct(options interface{}) { FILE: env_options_test.go type envTest (line 10) | type envTest struct function TestLoadEnvForStruct (line 14) | func TestLoadEnvForStruct(t *testing.T) { FILE: htpasswd.go type HtpasswdFile (line 17) | type HtpasswdFile struct method Validate (line 47) | func (h *HtpasswdFile) Validate(user string, password string) bool { function NewHtpasswdFromFile (line 21) | func NewHtpasswdFromFile(path string) (*HtpasswdFile, error) { function NewHtpasswd (line 30) | func NewHtpasswd(file io.Reader) (*HtpasswdFile, error) { FILE: htpasswd_test.go function TestSHA (line 12) | func TestSHA(t *testing.T) { function TestBcrypt (line 21) | func TestBcrypt(t *testing.T) { FILE: http.go type Server (line 12) | type Server struct method ListenAndServe (line 17) | func (s *Server) ListenAndServe() { method ServeHTTP (line 25) | func (s *Server) ServeHTTP() { method ServeHTTPS (line 60) | func (s *Server) ServeHTTPS() { type tcpKeepAliveListener (line 98) | type tcpKeepAliveListener struct method Accept (line 102) | func (ln tcpKeepAliveListener) Accept() (c net.Conn, err error) { FILE: logging_handler.go constant defaultRequestLoggingFormat (line 17) | defaultRequestLoggingFormat = "{{.Client}} - {{.Username}} [{{.Timestamp... type responseLogger (line 22) | type responseLogger struct method Header (line 30) | func (l *responseLogger) Header() http.Header { method ExtractGAPMetadata (line 34) | func (l *responseLogger) ExtractGAPMetadata() { method Write (line 47) | func (l *responseLogger) Write(b []byte) (int, error) { method WriteHeader (line 58) | func (l *responseLogger) WriteHeader(s int) { method Status (line 64) | func (l *responseLogger) Status() int { method Size (line 68) | func (l *responseLogger) Size() int { type logMessageData (line 74) | type logMessageData struct type loggingHandler (line 90) | type loggingHandler struct method ServeHTTP (line 106) | func (h loggingHandler) ServeHTTP(w http.ResponseWriter, req *http.Req... method writeLogLine (line 120) | func (h loggingHandler) writeLogLine(username, upstream string, req *h... function LoggingHandler (line 97) | func LoggingHandler(out io.Writer, h http.Handler, v bool, requestLoggin... FILE: logging_handler_test.go function TestLoggingHandler_ServeHTTP (line 12) | func TestLoggingHandler_ServeHTTP(t *testing.T) { FILE: main.go function main (line 16) | func main() { FILE: oauthproxy.go constant SignatureHeader (line 22) | SignatureHeader = "GAP-Signature" type OAuthProxy (line 37) | type OAuthProxy struct method GetRedirectURI (line 212) | func (p *OAuthProxy) GetRedirectURI(host string) string { method displayCustomLoginForm (line 230) | func (p *OAuthProxy) displayCustomLoginForm() bool { method redeemCode (line 234) | func (p *OAuthProxy) redeemCode(host, code string) (s *providers.Sessi... method MakeSessionCookie (line 257) | func (p *OAuthProxy) MakeSessionCookie(req *http.Request, value string... method MakeCSRFCookie (line 268) | func (p *OAuthProxy) MakeCSRFCookie(req *http.Request, value string, e... method makeCookie (line 272) | func (p *OAuthProxy) makeCookie(req *http.Request, name string, value ... method ClearCSRFCookie (line 294) | func (p *OAuthProxy) ClearCSRFCookie(rw http.ResponseWriter, req *http... method SetCSRFCookie (line 298) | func (p *OAuthProxy) SetCSRFCookie(rw http.ResponseWriter, req *http.R... method ClearSessionCookie (line 302) | func (p *OAuthProxy) ClearSessionCookie(rw http.ResponseWriter, req *h... method SetSessionCookie (line 314) | func (p *OAuthProxy) SetSessionCookie(rw http.ResponseWriter, req *htt... method LoadCookiedSession (line 318) | func (p *OAuthProxy) LoadCookiedSession(req *http.Request) (*providers... method SaveSession (line 339) | func (p *OAuthProxy) SaveSession(rw http.ResponseWriter, req *http.Req... method RobotsTxt (line 348) | func (p *OAuthProxy) RobotsTxt(rw http.ResponseWriter) { method PingPage (line 353) | func (p *OAuthProxy) PingPage(rw http.ResponseWriter) { method ErrorPage (line 358) | func (p *OAuthProxy) ErrorPage(rw http.ResponseWriter, code int, title... method SignInPage (line 373) | func (p *OAuthProxy) SignInPage(rw http.ResponseWriter, req *http.Requ... method ManualSignIn (line 405) | func (p *OAuthProxy) ManualSignIn(rw http.ResponseWriter, req *http.Re... method GetRedirect (line 422) | func (p *OAuthProxy) GetRedirect(req *http.Request) (redirect string, ... method IsWhitelistedRequest (line 436) | func (p *OAuthProxy) IsWhitelistedRequest(req *http.Request) (ok bool) { method IsWhitelistedPath (line 441) | func (p *OAuthProxy) IsWhitelistedPath(path string) (ok bool) { method ServeHTTP (line 459) | func (p *OAuthProxy) ServeHTTP(rw http.ResponseWriter, req *http.Reque... method SignIn (line 482) | func (p *OAuthProxy) SignIn(rw http.ResponseWriter, req *http.Request) { method SignOut (line 503) | func (p *OAuthProxy) SignOut(rw http.ResponseWriter, req *http.Request) { method OAuthStart (line 508) | func (p *OAuthProxy) OAuthStart(rw http.ResponseWriter, req *http.Requ... method OAuthCallback (line 524) | func (p *OAuthProxy) OAuthCallback(rw http.ResponseWriter, req *http.R... method AuthenticateOnly (line 585) | func (p *OAuthProxy) AuthenticateOnly(rw http.ResponseWriter, req *htt... method Proxy (line 594) | func (p *OAuthProxy) Proxy(rw http.ResponseWriter, req *http.Request) { method Authenticate (line 610) | func (p *OAuthProxy) Authenticate(rw http.ResponseWriter, req *http.Re... method CheckBasicAuth (line 709) | func (p *OAuthProxy) CheckBasicAuth(req *http.Request) (*providers.Ses... type UpstreamProxy (line 77) | type UpstreamProxy struct method ServeHTTP (line 83) | func (u *UpstreamProxy) ServeHTTP(w http.ResponseWriter, r *http.Reque... function NewReverseProxy (line 92) | func NewReverseProxy(target *url.URL) (proxy *httputil.ReverseProxy) { function setProxyUpstreamHostHeader (line 95) | func setProxyUpstreamHostHeader(proxy *httputil.ReverseProxy, target *ur... function setProxyDirector (line 105) | func setProxyDirector(proxy *httputil.ReverseProxy) { function NewFileServer (line 114) | func NewFileServer(path string, filesystemPath string) (proxy http.Handl... function NewOAuthProxy (line 118) | func NewOAuthProxy(opts *Options, validator func(string) bool) *OAuthPro... function getRemoteAddr (line 451) | func getRemoteAddr(req *http.Request) (s string) { FILE: oauthproxy_test.go function init (line 23) | func init() { function TestNewReverseProxy (line 28) | func TestNewReverseProxy(t *testing.T) { function TestEncodedSlashes (line 54) | func TestEncodedSlashes(t *testing.T) { function TestRobotsTxt (line 80) | func TestRobotsTxt(t *testing.T) { type TestProvider (line 95) | type TestProvider struct method GetEmailAddress (line 126) | func (tp *TestProvider) GetEmailAddress(session *providers.SessionStat... method ValidateSessionState (line 130) | func (tp *TestProvider) ValidateSessionState(session *providers.Sessio... function NewTestProvider (line 101) | func NewTestProvider(provider_url *url.URL, email_address string) *TestP... function TestBasicAuthPassword (line 134) | func TestBasicAuthPassword(t *testing.T) { type PassAccessTokenTest (line 214) | type PassAccessTokenTest struct method Close (line 266) | func (pat_test *PassAccessTokenTest) Close() { method getCallbackEndpoint (line 270) | func (pat_test *PassAccessTokenTest) getCallbackEndpoint() (http_code ... method getRootEndpoint (line 283) | func (pat_test *PassAccessTokenTest) getRootEndpoint(cookie string) (h... type PassAccessTokenTestOptions (line 220) | type PassAccessTokenTestOptions struct function NewPassAccessTokenTest (line 224) | func NewPassAccessTokenTest(opts PassAccessTokenTestOptions) *PassAccess... function TestForwardAccessTokenUpstream (line 317) | func TestForwardAccessTokenUpstream(t *testing.T) { function TestDoNotForwardAccessTokenUpstream (line 340) | func TestDoNotForwardAccessTokenUpstream(t *testing.T) { type SignInPageTest (line 362) | type SignInPageTest struct method GetEndpoint (line 391) | func (sip_test *SignInPageTest) GetEndpoint(endpoint string) (int, str... constant signInRedirectPattern (line 369) | signInRedirectPattern = `` constant signInSkipProvider (line 370) | signInSkipProvider = `>Found<` function NewSignInPageTest (line 372) | func NewSignInPageTest(skipProvider bool) *SignInPageTest { function TestSignInPageIncludesTargetRedirect (line 398) | func TestSignInPageIncludesTargetRedirect(t *testing.T) { function TestSignInPageDirectAccessRedirectsToRoot (line 416) | func TestSignInPageDirectAccessRedirectsToRoot(t *testing.T) { function TestSignInPageSkipProvider (line 431) | func TestSignInPageSkipProvider(t *testing.T) { function TestSignInPageSkipProviderDirect (line 445) | func TestSignInPageSkipProviderDirect(t *testing.T) { type ProcessCookieTest (line 459) | type ProcessCookieTest struct method MakeCookie (line 507) | func (p *ProcessCookieTest) MakeCookie(value string, ref time.Time) *h... method SaveSession (line 511) | func (p *ProcessCookieTest) SaveSession(s *providers.SessionState, ref... method LoadCookiedSession (line 520) | func (p *ProcessCookieTest) LoadCookiedSession() (*providers.SessionSt... type ProcessCookieTestOpts (line 469) | type ProcessCookieTestOpts struct function NewProcessCookieTest (line 473) | func NewProcessCookieTest(opts ProcessCookieTestOpts) *ProcessCookieTest { function NewProcessCookieTestWithDefaults (line 501) | func NewProcessCookieTestWithDefaults() *ProcessCookieTest { function TestLoadCookiedSession (line 524) | func TestLoadCookiedSession(t *testing.T) { function TestProcessCookieNoCookieError (line 537) | func TestProcessCookieNoCookieError(t *testing.T) { function TestProcessCookieRefreshNotSet (line 547) | func TestProcessCookieRefreshNotSet(t *testing.T) { function TestProcessCookieFailIfCookieExpired (line 563) | func TestProcessCookieFailIfCookieExpired(t *testing.T) { function TestProcessCookieFailIfRefreshSetAndCookieExpired (line 577) | func TestProcessCookieFailIfRefreshSetAndCookieExpired(t *testing.T) { function NewAuthOnlyEndpointTest (line 592) | func NewAuthOnlyEndpointTest() *ProcessCookieTest { function TestAuthOnlyEndpointAccepted (line 599) | func TestAuthOnlyEndpointAccepted(t *testing.T) { function TestAuthOnlyEndpointUnauthorizedOnNoCookieSetError (line 611) | func TestAuthOnlyEndpointUnauthorizedOnNoCookieSetError(t *testing.T) { function TestAuthOnlyEndpointUnauthorizedOnExpiration (line 620) | func TestAuthOnlyEndpointUnauthorizedOnExpiration(t *testing.T) { function TestAuthOnlyEndpointUnauthorizedOnEmailValidationFailure (line 634) | func TestAuthOnlyEndpointUnauthorizedOnEmailValidationFailure(t *testing... function TestAuthOnlyEndpointSetXAuthRequestHeaders (line 647) | func TestAuthOnlyEndpointSetXAuthRequestHeaders(t *testing.T) { function TestAuthSkippedForPreflightRequests (line 677) | func TestAuthSkippedForPreflightRequests(t *testing.T) { type SignatureAuthenticator (line 704) | type SignatureAuthenticator struct method Authenticate (line 708) | func (v *SignatureAuthenticator) Authenticate(w http.ResponseWriter, r... type SignatureTest (line 723) | type SignatureTest struct method Close (line 764) | func (st *SignatureTest) Close() { method MakeRequestWithExpectedKey (line 785) | func (st *SignatureTest) MakeRequestWithExpectedKey(method, body, key ... function NewSignatureTest (line 733) | func NewSignatureTest() *SignatureTest { type fakeNetConn (line 772) | type fakeNetConn struct method Read (line 776) | func (fnc *fakeNetConn) Read(p []byte) (n int, err error) { function TestNoRequestSignature (line 813) | func TestNoRequestSignature(t *testing.T) { function TestRequestSignatureGetRequest (line 821) | func TestRequestSignatureGetRequest(t *testing.T) { function TestRequestSignaturePostRequest (line 830) | func TestRequestSignaturePostRequest(t *testing.T) { FILE: options.go type Options (line 22) | type Options struct method Validate (line 128) | func (o *Options) Validate() error { type SignatureData (line 91) | type SignatureData struct function NewOptions (line 96) | func NewOptions() *Options { function parseURL (line 119) | func parseURL(to_parse string, urltype string, msgs []string) (*url.URL,... function parseProviderInfo (line 247) | func parseProviderInfo(o *Options, msgs []string) []string { function parseSignatureKey (line 285) | func parseSignatureKey(o *Options, msgs []string) []string { function validateCookieName (line 306) | func validateCookieName(o *Options, msgs []string) []string { function addPadding (line 314) | func addPadding(secret string) string { function secretBytes (line 329) | func secretBytes(secret string) []byte { FILE: options_test.go function testOptions (line 14) | func testOptions() *Options { function errorMsg (line 24) | func errorMsg(msgs []string) string { function TestNewOptions (line 31) | func TestNewOptions(t *testing.T) { function TestGoogleGroupOptions (line 44) | func TestGoogleGroupOptions(t *testing.T) { function TestGoogleGroupInvalidFile (line 56) | func TestGoogleGroupInvalidFile(t *testing.T) { function TestInitializedOptions (line 70) | func TestInitializedOptions(t *testing.T) { function TestRedirectURL (line 77) | func TestRedirectURL(t *testing.T) { function TestProxyURLs (line 86) | func TestProxyURLs(t *testing.T) { function TestProxyURLsError (line 98) | func TestProxyURLsError(t *testing.T) { function TestCompiledRegex (line 110) | func TestCompiledRegex(t *testing.T) { function TestCompiledRegexError (line 122) | func TestCompiledRegexError(t *testing.T) { function TestDefaultProviderApiSettings (line 145) | func TestDefaultProviderApiSettings(t *testing.T) { function TestPassAccessTokenRequiresSpecificCookieSecretLengths (line 157) | func TestPassAccessTokenRequiresSpecificCookieSecretLengths(t *testing.T) { function TestCookieRefreshMustBeLessThanCookieExpire (line 180) | func TestCookieRefreshMustBeLessThanCookieExpire(t *testing.T) { function TestBase64CookieSecret (line 192) | func TestBase64CookieSecret(t *testing.T) { function TestValidateSignatureKey (line 217) | func TestValidateSignatureKey(t *testing.T) { function TestValidateSignatureKeyInvalidSpec (line 225) | func TestValidateSignatureKeyInvalidSpec(t *testing.T) { function TestValidateSignatureKeyUnsupportedAlgorithm (line 233) | func TestValidateSignatureKeyUnsupportedAlgorithm(t *testing.T) { function TestValidateCookie (line 241) | func TestValidateCookie(t *testing.T) { function TestValidateCookieBadName (line 247) | func TestValidateCookieBadName(t *testing.T) { FILE: providers/azure.go type AzureProvider (line 13) | type AzureProvider struct method Configure (line 42) | func (p *AzureProvider) Configure(tenant string) { method GetEmailAddress (line 86) | func (p *AzureProvider) GetEmailAddress(s *SessionState) (string, erro... function NewAzureProvider (line 18) | func NewAzureProvider(p *ProviderData) *AzureProvider { function getAzureHeader (line 63) | func getAzureHeader(access_token string) http.Header { function getEmailFromJSON (line 69) | func getEmailFromJSON(json *simplejson.Json) (string, error) { FILE: providers/azure_test.go function testAzureProvider (line 12) | func testAzureProvider(hostname string) *AzureProvider { function TestAzureProviderDefaults (line 32) | func TestAzureProviderDefaults(t *testing.T) { function TestAzureProviderOverrides (line 51) | func TestAzureProviderOverrides(t *testing.T) { function TestAzureSetTenant (line 89) | func TestAzureSetTenant(t *testing.T) { function testAzureBackend (line 107) | func testAzureBackend(payload string) *httptest.Server { function TestAzureProviderGetEmailAddress (line 125) | func TestAzureProviderGetEmailAddress(t *testing.T) { function TestAzureProviderGetEmailAddressMailNull (line 138) | func TestAzureProviderGetEmailAddressMailNull(t *testing.T) { function TestAzureProviderGetEmailAddressGetUserPrincipalName (line 151) | func TestAzureProviderGetEmailAddressGetUserPrincipalName(t *testing.T) { function TestAzureProviderGetEmailAddressFailToGetEmailAddress (line 164) | func TestAzureProviderGetEmailAddressFailToGetEmailAddress(t *testing.T) { function TestAzureProviderGetEmailAddressEmptyUserPrincipalName (line 177) | func TestAzureProviderGetEmailAddressEmptyUserPrincipalName(t *testing.T) { function TestAzureProviderGetEmailAddressIncorrectOtherMails (line 190) | func TestAzureProviderGetEmailAddressIncorrectOtherMails(t *testing.T) { FILE: providers/facebook.go type FacebookProvider (line 12) | type FacebookProvider struct method GetEmailAddress (line 54) | func (p *FacebookProvider) GetEmailAddress(s *SessionState) (string, e... method ValidateSessionState (line 78) | func (p *FacebookProvider) ValidateSessionState(s *SessionState) bool { function NewFacebookProvider (line 16) | func NewFacebookProvider(p *ProviderData) *FacebookProvider { function getFacebookHeader (line 46) | func getFacebookHeader(access_token string) http.Header { FILE: providers/github.go type GitHubProvider (line 15) | type GitHubProvider struct method SetOrgTeam (line 50) | func (p *GitHubProvider) SetOrgTeam(org, team string) { method hasOrg (line 58) | func (p *GitHubProvider) hasOrg(accessToken string) (bool, error) { method hasOrgAndTeam (line 125) | func (p *GitHubProvider) hasOrgAndTeam(accessToken string) (bool, erro... method GetEmailAddress (line 197) | func (p *GitHubProvider) GetEmailAddress(s *SessionState) (string, err... method GetUserName (line 254) | func (p *GitHubProvider) GetUserName(s *SessionState) (string, error) { function NewGitHubProvider (line 21) | func NewGitHubProvider(p *ProviderData) *GitHubProvider { FILE: providers/github_test.go function testGitHubProvider (line 12) | func testGitHubProvider(hostname string) *GitHubProvider { function testGitHubBackend (line 30) | func testGitHubBackend(payload []string) *httptest.Server { function TestGitHubProviderDefaults (line 60) | func TestGitHubProviderDefaults(t *testing.T) { function TestGitHubProviderOverrides (line 73) | func TestGitHubProviderOverrides(t *testing.T) { function TestGitHubProviderGetEmailAddress (line 100) | func TestGitHubProviderGetEmailAddress(t *testing.T) { function TestGitHubProviderGetEmailAddressWithOrg (line 113) | func TestGitHubProviderGetEmailAddressWithOrg(t *testing.T) { function TestGitHubProviderGetEmailAddressFailedRequest (line 133) | func TestGitHubProviderGetEmailAddressFailedRequest(t *testing.T) { function TestGitHubProviderGetEmailAddressEmailNotPresentInPayload (line 149) | func TestGitHubProviderGetEmailAddressEmailNotPresentInPayload(t *testin... function TestGitHubProviderGetUserName (line 162) | func TestGitHubProviderGetUserName(t *testing.T) { FILE: providers/gitlab.go type GitLabProvider (line 11) | type GitLabProvider struct method GetEmailAddress (line 44) | func (p *GitLabProvider) GetEmailAddress(s *SessionState) (string, err... function NewGitLabProvider (line 15) | func NewGitLabProvider(p *ProviderData) *GitLabProvider { FILE: providers/gitlab_test.go function testGitLabProvider (line 12) | func testGitLabProvider(hostname string) *GitLabProvider { function testGitLabBackend (line 30) | func testGitLabBackend(payload string) *httptest.Server { function TestGitLabProviderDefaults (line 46) | func TestGitLabProviderDefaults(t *testing.T) { function TestGitLabProviderOverrides (line 59) | func TestGitLabProviderOverrides(t *testing.T) { function TestGitLabProviderGetEmailAddress (line 86) | func TestGitLabProviderGetEmailAddress(t *testing.T) { function TestGitLabProviderGetEmailAddressFailedRequest (line 101) | func TestGitLabProviderGetEmailAddressFailedRequest(t *testing.T) { function TestGitLabProviderGetEmailAddressEmailNotPresentInPayload (line 117) | func TestGitLabProviderGetEmailAddressEmailNotPresentInPayload(t *testin... FILE: providers/google.go type GoogleProvider (line 23) | type GoogleProvider struct method Redeem (line 93) | func (p *GoogleProvider) Redeem(redirectURL, code string) (s *SessionS... method SetGroupRestriction (line 156) | func (p *GoogleProvider) SetGroupRestriction(groups []string, adminEma... method ValidateGroup (line 248) | func (p *GoogleProvider) ValidateGroup(email string) bool { method RefreshSessionIfNeeded (line 252) | func (p *GoogleProvider) RefreshSessionIfNeeded(s *SessionState) (bool... method redeemRefreshToken (line 274) | func (p *GoogleProvider) redeemRefreshToken(refreshToken string) (toke... function NewGoogleProvider (line 31) | func NewGoogleProvider(p *ProviderData) *GoogleProvider { function emailFromIdToken (line 65) | func emailFromIdToken(idToken string) (string, error) { function getAdminService (line 163) | func getAdminService(adminEmail string, credentialsReader io.Reader) *ad... function userInGroup (line 182) | func userInGroup(service *admin.Service, groups []string, email string) ... function fetchUser (line 218) | func fetchUser(service *admin.Service, email string) (*admin.User, error) { function fetchGroupMembers (line 223) | func fetchGroupMembers(service *admin.Service, group string) ([]*admin.M... FILE: providers/google_test.go function newRedeemServer (line 14) | func newRedeemServer(body []byte) (*url.URL, *httptest.Server) { function newGoogleProvider (line 22) | func newGoogleProvider() *GoogleProvider { function TestGoogleProviderDefaults (line 33) | func TestGoogleProviderDefaults(t *testing.T) { function TestGoogleProviderOverrides (line 47) | func TestGoogleProviderOverrides(t *testing.T) { type redeemResponse (line 80) | type redeemResponse struct function TestGoogleProviderGetEmailAddress (line 87) | func TestGoogleProviderGetEmailAddress(t *testing.T) { function TestGoogleProviderValidateGroup (line 108) | func TestGoogleProviderValidateGroup(t *testing.T) { function TestGoogleProviderWithoutValidateGroup (line 120) | func TestGoogleProviderWithoutValidateGroup(t *testing.T) { function TestGoogleProviderGetEmailAddressInvalidEncoding (line 126) | func TestGoogleProviderGetEmailAddressInvalidEncoding(t *testing.T) { function TestGoogleProviderGetEmailAddressInvalidJson (line 144) | func TestGoogleProviderGetEmailAddressInvalidJson(t *testing.T) { function TestGoogleProviderGetEmailAddressEmailMissing (line 164) | func TestGoogleProviderGetEmailAddressEmailMissing(t *testing.T) { FILE: providers/internal_util.go function stripToken (line 14) | func stripToken(endpoint string) string { function stripParam (line 24) | func stripParam(param, endpoint string) string { function validateToken (line 49) | func validateToken(p Provider, access_token string, header http.Header) ... function updateURL (line 76) | func updateURL(url *url.URL, hostname string) { FILE: providers/internal_util_test.go type ValidateSessionStateTestProvider (line 13) | type ValidateSessionStateTestProvider struct method GetEmailAddress (line 17) | func (tp *ValidateSessionStateTestProvider) GetEmailAddress(s *Session... method ValidateSessionState (line 23) | func (tp *ValidateSessionStateTestProvider) ValidateSessionState(s *Se... type ValidateSessionStateTest (line 27) | type ValidateSessionStateTest struct method Close (line 77) | func (vt_test *ValidateSessionStateTest) Close() { function NewValidateSessionStateTest (line 34) | func NewValidateSessionStateTest() *ValidateSessionStateTest { function TestValidateSessionStateValidToken (line 81) | func TestValidateSessionStateValidToken(t *testing.T) { function TestValidateSessionStateValidTokenWithHeaders (line 87) | func TestValidateSessionStateValidTokenWithHeaders(t *testing.T) { function TestValidateSessionStateEmptyToken (line 96) | func TestValidateSessionStateEmptyToken(t *testing.T) { function TestValidateSessionStateEmptyValidateURL (line 102) | func TestValidateSessionStateEmptyValidateURL(t *testing.T) { function TestValidateSessionStateRequestNetworkFailure (line 109) | func TestValidateSessionStateRequestNetworkFailure(t *testing.T) { function TestValidateSessionStateExpiredToken (line 116) | func TestValidateSessionStateExpiredToken(t *testing.T) { function TestStripTokenNotPresent (line 123) | func TestStripTokenNotPresent(t *testing.T) { function TestStripToken (line 128) | func TestStripToken(t *testing.T) { FILE: providers/linkedin.go type LinkedInProvider (line 12) | type LinkedInProvider struct method GetEmailAddress (line 50) | func (p *LinkedInProvider) GetEmailAddress(s *SessionState) (string, e... method ValidateSessionState (line 72) | func (p *LinkedInProvider) ValidateSessionState(s *SessionState) bool { function NewLinkedInProvider (line 16) | func NewLinkedInProvider(p *ProviderData) *LinkedInProvider { function getLinkedInHeader (line 42) | func getLinkedInHeader(access_token string) http.Header { FILE: providers/linkedin_test.go function testLinkedInProvider (line 12) | func testLinkedInProvider(hostname string) *LinkedInProvider { function testLinkedInBackend (line 29) | func testLinkedInBackend(payload string) *httptest.Server { function TestLinkedInProviderDefaults (line 46) | func TestLinkedInProviderDefaults(t *testing.T) { function TestLinkedInProviderOverrides (line 61) | func TestLinkedInProviderOverrides(t *testing.T) { function TestLinkedInProviderGetEmailAddress (line 94) | func TestLinkedInProviderGetEmailAddress(t *testing.T) { function TestLinkedInProviderGetEmailAddressFailedRequest (line 107) | func TestLinkedInProviderGetEmailAddressFailedRequest(t *testing.T) { function TestLinkedInProviderGetEmailAddressEmailNotPresentInPayload (line 123) | func TestLinkedInProviderGetEmailAddressEmailNotPresentInPayload(t *test... FILE: providers/oidc.go type OIDCProvider (line 13) | type OIDCProvider struct method Redeem (line 24) | func (p *OIDCProvider) Redeem(redirectURL, code string) (s *SessionSta... method RefreshSessionIfNeeded (line 76) | func (p *OIDCProvider) RefreshSessionIfNeeded(s *SessionState) (bool, ... function NewOIDCProvider (line 19) | func NewOIDCProvider(p *ProviderData) *OIDCProvider { FILE: providers/provider_data.go type ProviderData (line 7) | type ProviderData struct method Data (line 20) | func (p *ProviderData) Data() *ProviderData { return p } FILE: providers/provider_default.go method Redeem (line 15) | func (p *ProviderData) Redeem(redirectURL, code string) (s *SessionState... method GetLoginURL (line 81) | func (p *ProviderData) GetLoginURL(redirectURI, state string) string { method CookieForSession (line 96) | func (p *ProviderData) CookieForSession(s *SessionState, c *cookie.Ciphe... method SessionFromCookie (line 101) | func (p *ProviderData) SessionFromCookie(v string, c *cookie.Cipher) (s ... method GetEmailAddress (line 105) | func (p *ProviderData) GetEmailAddress(s *SessionState) (string, error) { method GetUserName (line 110) | func (p *ProviderData) GetUserName(s *SessionState) (string, error) { method ValidateGroup (line 116) | func (p *ProviderData) ValidateGroup(email string) bool { method ValidateSessionState (line 120) | func (p *ProviderData) ValidateSessionState(s *SessionState) bool { method RefreshSessionIfNeeded (line 125) | func (p *ProviderData) RefreshSessionIfNeeded(s *SessionState) (bool, er... FILE: providers/provider_default_test.go function TestRefresh (line 10) | func TestRefresh(t *testing.T) { FILE: providers/providers.go type Provider (line 7) | type Provider interface function New (line 20) | func New(provider string, p *ProviderData) Provider { FILE: providers/session_state.go type SessionState (line 12) | type SessionState struct method IsExpired (line 20) | func (s *SessionState) IsExpired() bool { method String (line 27) | func (s *SessionState) String() string { method EncodeSessionState (line 41) | func (s *SessionState) EncodeSessionState(c *cookie.Cipher) (string, e... method accountInfo (line 48) | func (s *SessionState) accountInfo() string { method EncryptedString (line 52) | func (s *SessionState) EncryptedString(c *cookie.Cipher) (string, erro... function decodeSessionStatePlain (line 72) | func decodeSessionStatePlain(v string) (s *SessionState, err error) { function DecodeSessionState (line 87) | func DecodeSessionState(v string, c *cookie.Cipher) (s *SessionState, er... FILE: providers/session_state_test.go constant secret (line 13) | secret = "0123456789abcdefghijklmnopqrstuv" constant altSecret (line 14) | altSecret = "0000000000abcdefghijklmnopqrstuv" function TestSessionStateSerialization (line 16) | func TestSessionStateSerialization(t *testing.T) { function TestSessionStateSerializationWithUser (line 51) | func TestSessionStateSerializationWithUser(t *testing.T) { function TestSessionStateSerializationNoCipher (line 87) | func TestSessionStateSerializationNoCipher(t *testing.T) { function TestSessionStateSerializationNoCipherWithUser (line 108) | func TestSessionStateSerializationNoCipherWithUser(t *testing.T) { function TestSessionStateAccountInfo (line 130) | func TestSessionStateAccountInfo(t *testing.T) { function TestExpired (line 143) | func TestExpired(t *testing.T) { FILE: string_array.go type StringArray (line 7) | type StringArray method Set (line 9) | func (a *StringArray) Set(s string) error { method String (line 14) | func (a *StringArray) String() string { FILE: templates.go function loadTemplates (line 9) | func loadTemplates(dir string) *template.Template { function getTemplates (line 21) | func getTemplates() *template.Template { FILE: templates_test.go function TestTemplatesCompile (line 9) | func TestTemplatesCompile(t *testing.T) { FILE: validator.go type UserMap (line 13) | type UserMap struct method IsValid (line 33) | func (um *UserMap) IsValid(email string) (result bool) { method LoadAuthenticatedEmailsFile (line 39) | func (um *UserMap) LoadAuthenticatedEmailsFile() { function NewUserMap (line 18) | func NewUserMap(usersFile string, done <-chan bool, onUpdate func()) *Us... function newValidatorImpl (line 62) | func newValidatorImpl(domains []string, usersFile string, function NewValidator (line 94) | func NewValidator(domains []string, usersFile string) func(string) bool { FILE: validator_test.go type ValidatorTest (line 10) | type ValidatorTest struct method TearDown (line 27) | func (vt *ValidatorTest) TearDown() { method NewValidator (line 32) | func (vt *ValidatorTest) NewValidator(domains []string, method WriteEmails (line 44) | func (vt *ValidatorTest) WriteEmails(t *testing.T, emails []string) { function NewValidatorTest (line 16) | func NewValidatorTest(t *testing.T) *ValidatorTest { function TestValidatorEmpty (line 53) | func TestValidatorEmpty(t *testing.T) { function TestValidatorSingleEmail (line 67) | func TestValidatorSingleEmail(t *testing.T) { function TestValidatorSingleDomain (line 84) | func TestValidatorSingleDomain(t *testing.T) { function TestValidatorMultipleEmailsMultipleDomains (line 100) | func TestValidatorMultipleEmailsMultipleDomains(t *testing.T) { function TestValidatorComparisonsAreCaseInsensitive (line 129) | func TestValidatorComparisonsAreCaseInsensitive(t *testing.T) { function TestValidatorIgnoreSpacesInAuthEmails (line 151) | func TestValidatorIgnoreSpacesInAuthEmails(t *testing.T) { FILE: validator_watcher_copy_test.go method UpdateEmailFileViaCopyingOver (line 13) | func (vt *ValidatorTest) UpdateEmailFileViaCopyingOver( function TestValidatorOverwriteEmailListViaCopyingOver (line 29) | func TestValidatorOverwriteEmailListViaCopyingOver(t *testing.T) { FILE: validator_watcher_test.go method UpdateEmailFile (line 11) | func (vt *ValidatorTest) UpdateEmailFile(t *testing.T, emails []string) { method UpdateEmailFileViaRenameAndReplace (line 21) | func (vt *ValidatorTest) UpdateEmailFileViaRenameAndReplace( function TestValidatorOverwriteEmailListDirectly (line 43) | func TestValidatorOverwriteEmailListDirectly(t *testing.T) { function TestValidatorOverwriteEmailListViaRenameAndReplace (line 83) | func TestValidatorOverwriteEmailListViaRenameAndReplace(t *testing.T) { FILE: version.go constant VERSION (line 3) | VERSION = "2.2.1-alpha" FILE: watcher.go function WaitForReplacement (line 14) | func WaitForReplacement(filename string, op fsnotify.Op, function WatchForUpdates (line 33) | func WatchForUpdates(filename string, done <-chan bool, action func()) { FILE: watcher_unsupported.go function WatchForUpdates (line 9) | func WatchForUpdates(filename string, done <-chan bool, action func()) {