@@ -484,8 +484,7 @@ func TestBasicAuthPassword(t *testing.T) {
486 rw := httptest.NewRecorder()
486 rw := httptest.NewRecorder()
487− req, _ := http.NewRequest("GET", "/oauth2/callback?code=callback_code&state=nonce:",
487+ req, _ := http.NewRequest("GET", "/oauth2/callback?code=callback_code&state=nonce:", strings.NewReader(""))
488− strings.NewReader(""))
489 req.AddCookie(proxy.MakeCSRFCookie(req, "nonce", proxy.CookieExpire, time.Now()))
488 req.AddCookie(proxy.MakeCSRFCookie(req, "nonce", proxy.CookieExpire, time.Now()))
490 proxy.ServeHTTP(rw, req)
489 proxy.ServeHTTP(rw, req)
491 if rw.Code >= 400 {
490 if rw.Code >= 400 {
@@ -541,11 +540,12 @@ func TestBasicAuthWithEmail(t *testing.T) {
541 expectedEmailHeader := "Basic " + base64.StdEncoding.EncodeToString([]byte(emailAddress+":"+opts.BasicAuthPassword))
540 expectedEmailHeader := "Basic " + base64.StdEncoding.EncodeToString([]byte(emailAddress+":"+opts.BasicAuthPassword))
542 expectedUserHeader := "Basic " + base64.StdEncoding.EncodeToString([]byte(userName+":"+opts.BasicAuthPassword))
541 expectedUserHeader := "Basic " + base64.StdEncoding.EncodeToString([]byte(userName+":"+opts.BasicAuthPassword))
543+ created := time.Now()
544 session := &sessions.SessionState{
544 session := &sessions.SessionState{
545 User: userName,
545 User: userName,
546 Email: emailAddress,
546 Email: emailAddress,
547 AccessToken: "oauth_token",
547 AccessToken: "oauth_token",
548− CreatedAt: time.Now(),
548+ CreatedAt: &created,
551 rw := httptest.NewRecorder()
551 rw := httptest.NewRecorder()
@@ -582,11 +582,12 @@ func TestPassUserHeadersWithEmail(t *testing.T) {
582 const emailAddress = "john.doe@example.com"
582 const emailAddress = "john.doe@example.com"
583 const userName = "9fcab5c9b889a557"
583 const userName = "9fcab5c9b889a557"
585+ created := time.Now()
585 session := &sessions.SessionState{
586 session := &sessions.SessionState{
586 User: userName,
587 User: userName,
587 Email: emailAddress,
588 Email: emailAddress,
588 AccessToken: "oauth_token",
589 AccessToken: "oauth_token",
589− CreatedAt: time.Now(),
590+ CreatedAt: &created,
592 rw := httptest.NewRecorder()
593 rw := httptest.NewRecorder()
@@ -959,7 +960,8 @@ func (p *ProcessCookieTest) LoadCookiedSession() (*sessions.SessionState, error)
959func TestLoadCookiedSession(t *testing.T) {
960func TestLoadCookiedSession(t *testing.T) {
960 pcTest := NewProcessCookieTestWithDefaults()
961 pcTest := NewProcessCookieTestWithDefaults()
963+ created := time.Now()
962− startSession := &sessions.SessionState{Email: "john.doe@example.com", AccessToken: "my_access_token", CreatedAt: time.Now()}
964+ startSession := &sessions.SessionState{Email: "john.doe@example.com", AccessToken: "my_access_token", CreatedAt: &created}
963 pcTest.SaveSession(startSession)
965 pcTest.SaveSession(startSession)
965 session, err := pcTest.LoadCookiedSession()
967 session, err := pcTest.LoadCookiedSession()
@@ -985,7 +987,7 @@ func TestProcessCookieRefreshNotSet(t *testing.T) {
986 reference := time.Now().Add(time.Duration(-2) * time.Hour)
988 reference := time.Now().Add(time.Duration(-2) * time.Hour)
988− startSession := &sessions.SessionState{Email: "michael.bland@gsa.gov", AccessToken: "my_access_token", CreatedAt: reference}
990+ startSession := &sessions.SessionState{Email: "michael.bland@gsa.gov", AccessToken: "my_access_token", CreatedAt: &reference}
989 pcTest.SaveSession(startSession)
991 pcTest.SaveSession(startSession)
991 session, err := pcTest.LoadCookiedSession()
993 session, err := pcTest.LoadCookiedSession()
@@ -1001,7 +1003,7 @@ func TestProcessCookieFailIfCookieExpired(t *testing.T) {
1001 opts.Cookie.Expire = time.Duration(24) * time.Hour
1003 opts.Cookie.Expire = time.Duration(24) * time.Hour
1003 reference := time.Now().Add(time.Duration(25) * time.Hour * -1)
1005 reference := time.Now().Add(time.Duration(25) * time.Hour * -1)
1004− startSession := &sessions.SessionState{Email: "michael.bland@gsa.gov", AccessToken: "my_access_token", CreatedAt: reference}
1006+ startSession := &sessions.SessionState{Email: "michael.bland@gsa.gov", AccessToken: "my_access_token", CreatedAt: &reference}
1005 pcTest.SaveSession(startSession)
1007 pcTest.SaveSession(startSession)
1007 session, err := pcTest.LoadCookiedSession()
1009 session, err := pcTest.LoadCookiedSession()
@@ -1016,7 +1018,7 @@ func TestProcessCookieFailIfRefreshSetAndCookieExpired(t *testing.T) {
1016 opts.Cookie.Expire = time.Duration(24) * time.Hour
1018 opts.Cookie.Expire = time.Duration(24) * time.Hour
1018 reference := time.Now().Add(time.Duration(25) * time.Hour * -1)
1020 reference := time.Now().Add(time.Duration(25) * time.Hour * -1)
1019− startSession := &sessions.SessionState{Email: "michael.bland@gsa.gov", AccessToken: "my_access_token", CreatedAt: reference}
1021+ startSession := &sessions.SessionState{Email: "michael.bland@gsa.gov", AccessToken: "my_access_token", CreatedAt: &reference}
1020 pcTest.SaveSession(startSession)
1022 pcTest.SaveSession(startSession)
1022 pcTest.proxy.CookieRefresh = time.Hour
1024 pcTest.proxy.CookieRefresh = time.Hour
@@ -1062,8 +1064,9 @@ func NewAuthOnlyEndpointTest(modifiers ...OptionsModifier) *ProcessCookieTest {
1063func TestAuthOnlyEndpointAccepted(t *testing.T) {
1065func TestAuthOnlyEndpointAccepted(t *testing.T) {
1064 test := NewAuthOnlyEndpointTest()
1066 test := NewAuthOnlyEndpointTest()
1067+ created := time.Now()
1065 startSession := &sessions.SessionState{
1068 startSession := &sessions.SessionState{
1066− Email: "michael.bland@gsa.gov", AccessToken: "my_access_token", CreatedAt: time.Now()}
1069+ Email: "michael.bland@gsa.gov", AccessToken: "my_access_token", CreatedAt: &created}
1067 test.SaveSession(startSession)
1070 test.SaveSession(startSession)
1069 test.proxy.ServeHTTP(test.rw, test.req)
1072 test.proxy.ServeHTTP(test.rw, test.req)
@@ -1087,7 +1090,7 @@ func TestAuthOnlyEndpointUnauthorizedOnExpiration(t *testing.T) {
1088 reference := time.Now().Add(time.Duration(25) * time.Hour * -1)
1091 reference := time.Now().Add(time.Duration(25) * time.Hour * -1)
1089 startSession := &sessions.SessionState{
1092 startSession := &sessions.SessionState{
1090− Email: "michael.bland@gsa.gov", AccessToken: "my_access_token", CreatedAt: reference}
1093+ Email: "michael.bland@gsa.gov", AccessToken: "my_access_token", CreatedAt: &reference}
1091 test.SaveSession(startSession)
1094 test.SaveSession(startSession)
1093 test.proxy.ServeHTTP(test.rw, test.req)
1096 test.proxy.ServeHTTP(test.rw, test.req)
@@ -1098,8 +1101,9 @@ func TestAuthOnlyEndpointUnauthorizedOnExpiration(t *testing.T) {
1099func TestAuthOnlyEndpointUnauthorizedOnEmailValidationFailure(t *testing.T) {
1102func TestAuthOnlyEndpointUnauthorizedOnEmailValidationFailure(t *testing.T) {
1100 test := NewAuthOnlyEndpointTest()
1103 test := NewAuthOnlyEndpointTest()
1104+ created := time.Now()
1101 startSession := &sessions.SessionState{
1105 startSession := &sessions.SessionState{
1102− Email: "michael.bland@gsa.gov", AccessToken: "my_access_token", CreatedAt: time.Now()}
1106+ Email: "michael.bland@gsa.gov", AccessToken: "my_access_token", CreatedAt: &created}
1103 test.SaveSession(startSession)
1107 test.SaveSession(startSession)
1104 test.validateUser = false
1108 test.validateUser = false
@@ -1129,8 +1133,9 @@ func TestAuthOnlyEndpointSetXAuthRequestHeaders(t *testing.T) {
1129 pcTest.req, _ = http.NewRequest("GET",
1133 pcTest.req, _ = http.NewRequest("GET",
1130 pcTest.opts.ProxyPrefix+"/auth", nil)
1134 pcTest.opts.ProxyPrefix+"/auth", nil)
1136+ created := time.Now()
1132 startSession := &sessions.SessionState{
1137 startSession := &sessions.SessionState{
1133− User: "oauth_user", Email: "oauth_user@example.com", AccessToken: "oauth_token", CreatedAt: time.Now()}
1138+ User: "oauth_user", Email: "oauth_user@example.com", AccessToken: "oauth_token", CreatedAt: &created}
1134 pcTest.SaveSession(startSession)
1139 pcTest.SaveSession(startSession)
1136 pcTest.proxy.ServeHTTP(pcTest.rw, pcTest.req)
1141 pcTest.proxy.ServeHTTP(pcTest.rw, pcTest.req)
@@ -1160,8 +1165,9 @@ func TestAuthOnlyEndpointSetBasicAuthTrueRequestHeaders(t *testing.T) {
1160 pcTest.req, _ = http.NewRequest("GET",
1165 pcTest.req, _ = http.NewRequest("GET",
1161 pcTest.opts.ProxyPrefix+"/auth", nil)
1166 pcTest.opts.ProxyPrefix+"/auth", nil)
1168+ created := time.Now()
1163 startSession := &sessions.SessionState{
1169 startSession := &sessions.SessionState{
1164− User: "oauth_user", Email: "oauth_user@example.com", AccessToken: "oauth_token", CreatedAt: time.Now()}
1170+ User: "oauth_user", Email: "oauth_user@example.com", AccessToken: "oauth_token", CreatedAt: &created}
1165 pcTest.SaveSession(startSession)
1171 pcTest.SaveSession(startSession)
1167 pcTest.proxy.ServeHTTP(pcTest.rw, pcTest.req)
1173 pcTest.proxy.ServeHTTP(pcTest.rw, pcTest.req)
@@ -1193,8 +1199,9 @@ func TestAuthOnlyEndpointSetBasicAuthFalseRequestHeaders(t *testing.T) {
1193 pcTest.req, _ = http.NewRequest("GET",
1199 pcTest.req, _ = http.NewRequest("GET",
1194 pcTest.opts.ProxyPrefix+"/auth", nil)
1200 pcTest.opts.ProxyPrefix+"/auth", nil)
1202+ created := time.Now()
1196 startSession := &sessions.SessionState{
1203 startSession := &sessions.SessionState{
1197− User: "oauth_user", Email: "oauth_user@example.com", AccessToken: "oauth_token", CreatedAt: time.Now()}
1204+ User: "oauth_user", Email: "oauth_user@example.com", AccessToken: "oauth_token", CreatedAt: &created}
1198 pcTest.SaveSession(startSession)
1205 pcTest.SaveSession(startSession)
1200 pcTest.proxy.ServeHTTP(pcTest.rw, pcTest.req)
1207 pcTest.proxy.ServeHTTP(pcTest.rw, pcTest.req)
@@ -1569,10 +1576,11 @@ func TestGetJwtSession(t *testing.T) {
1571 // Bearer
1578 // Bearer
1579+ expires := time.Unix(1912151821, 0)
1572 session, _ := test.proxy.GetJwtSession(test.req)
1580 session, _ := test.proxy.GetJwtSession(test.req)
1573 assert.Equal(t, session.User, "john@example.com")
1581 assert.Equal(t, session.User, "john@example.com")
1574 assert.Equal(t, session.Email, "john@example.com")
1582 assert.Equal(t, session.Email, "john@example.com")
1575− assert.Equal(t, session.ExpiresOn, time.Unix(1912151821, 0))
1583+ assert.Equal(t, session.ExpiresOn, &expires)
1576 assert.Equal(t, session.IDToken, goodJwt)
1584 assert.Equal(t, session.IDToken, goodJwt)
1578 test.proxy.ServeHTTP(test.rw, test.req)
1586 test.proxy.ServeHTTP(test.rw, test.req)