1
0
mirror of https://github.com/oauth2-proxy/oauth2-proxy.git synced 2025-05-29 23:17:38 +02:00

Fix tests for stored_session.go in middleware

This commit is contained in:
Kevin Kreitner 2021-10-11 11:12:11 +02:00 committed by Joel Speed
parent d8663a19a9
commit fca2d76f33
No known key found for this signature in database
GPG Key ID: 6E80578D6751DEFB
2 changed files with 6 additions and 24 deletions

View File

@ -103,7 +103,7 @@ func (s *storedSessionLoader) getValidatedSession(rw http.ResponseWriter, req *h
err = s.refreshSessionIfNeeded(rw, req, session) err = s.refreshSessionIfNeeded(rw, req, session)
if err != nil { if err != nil {
return nil, fmt.Errorf("error refreshing access token for session (%s): %v", session, err) logger.Errorf("error refreshing access token for session (%s): %v", session, err)
} }
// Validate all sessions after any Redeem/Refresh operation (fail or success) // Validate all sessions after any Redeem/Refresh operation (fail or success)

View File

@ -181,6 +181,7 @@ var _ = Describe("Stored Session Suite", func() {
RefreshToken: noRefresh, RefreshToken: noRefresh,
CreatedAt: &createdPast, CreatedAt: &createdPast,
ExpiresOn: &createdFuture, ExpiresOn: &createdFuture,
Lock: &sessionsapi.NoOpLock{},
}, },
store: defaultSessionStore, store: defaultSessionStore,
refreshPeriod: 1 * time.Minute, refreshPeriod: 1 * time.Minute,
@ -222,6 +223,7 @@ var _ = Describe("Stored Session Suite", func() {
RefreshToken: "Refreshed", RefreshToken: "Refreshed",
CreatedAt: &now, CreatedAt: &now,
ExpiresOn: &createdFuture, ExpiresOn: &createdFuture,
Lock: &sessionsapi.NoOpLock{},
}, },
store: defaultSessionStore, store: defaultSessionStore,
refreshPeriod: 1 * time.Minute, refreshPeriod: 1 * time.Minute,
@ -237,6 +239,7 @@ var _ = Describe("Stored Session Suite", func() {
RefreshToken: "RefreshError", RefreshToken: "RefreshError",
CreatedAt: &createdPast, CreatedAt: &createdPast,
ExpiresOn: &createdFuture, ExpiresOn: &createdFuture,
Lock: &sessionsapi.NoOpLock{},
}, },
store: defaultSessionStore, store: defaultSessionStore,
refreshPeriod: 1 * time.Minute, refreshPeriod: 1 * time.Minute,
@ -274,7 +277,6 @@ var _ = Describe("Stored Session Suite", func() {
session *sessionsapi.SessionState session *sessionsapi.SessionState
expectedErr error expectedErr error
expectRefreshed bool expectRefreshed bool
expectValidated bool
} }
createdPast := time.Now().Add(-5 * time.Minute) createdPast := time.Now().Add(-5 * time.Minute)
@ -283,7 +285,6 @@ var _ = Describe("Stored Session Suite", func() {
DescribeTable("with a session", DescribeTable("with a session",
func(in refreshSessionIfNeededTableInput) { func(in refreshSessionIfNeededTableInput) {
refreshed := false refreshed := false
validated := false
s := &storedSessionLoader{ s := &storedSessionLoader{
refreshPeriod: in.refreshPeriod, refreshPeriod: in.refreshPeriod,
@ -302,7 +303,6 @@ var _ = Describe("Stored Session Suite", func() {
} }
}, },
sessionValidator: func(_ context.Context, ss *sessionsapi.SessionState) bool { sessionValidator: func(_ context.Context, ss *sessionsapi.SessionState) bool {
validated = true
return ss.AccessToken != "Invalid" return ss.AccessToken != "Invalid"
}, },
} }
@ -315,7 +315,6 @@ var _ = Describe("Stored Session Suite", func() {
Expect(err).ToNot(HaveOccurred()) Expect(err).ToNot(HaveOccurred())
} }
Expect(refreshed).To(Equal(in.expectRefreshed)) Expect(refreshed).To(Equal(in.expectRefreshed))
Expect(validated).To(Equal(in.expectValidated))
}, },
Entry("when the refresh period is 0, and the session does not need refreshing", refreshSessionIfNeededTableInput{ Entry("when the refresh period is 0, and the session does not need refreshing", refreshSessionIfNeededTableInput{
refreshPeriod: time.Duration(0), refreshPeriod: time.Duration(0),
@ -325,7 +324,6 @@ var _ = Describe("Stored Session Suite", func() {
}, },
expectedErr: nil, expectedErr: nil,
expectRefreshed: false, expectRefreshed: false,
expectValidated: false,
}), }),
Entry("when the refresh period is 0, and the session needs refreshing", refreshSessionIfNeededTableInput{ Entry("when the refresh period is 0, and the session needs refreshing", refreshSessionIfNeededTableInput{
refreshPeriod: time.Duration(0), refreshPeriod: time.Duration(0),
@ -335,7 +333,6 @@ var _ = Describe("Stored Session Suite", func() {
}, },
expectedErr: nil, expectedErr: nil,
expectRefreshed: false, expectRefreshed: false,
expectValidated: false,
}), }),
Entry("when the session does not need refreshing", refreshSessionIfNeededTableInput{ Entry("when the session does not need refreshing", refreshSessionIfNeededTableInput{
refreshPeriod: 1 * time.Minute, refreshPeriod: 1 * time.Minute,
@ -345,7 +342,6 @@ var _ = Describe("Stored Session Suite", func() {
}, },
expectedErr: nil, expectedErr: nil,
expectRefreshed: false, expectRefreshed: false,
expectValidated: false,
}), }),
Entry("when the session is refreshed by the provider", refreshSessionIfNeededTableInput{ Entry("when the session is refreshed by the provider", refreshSessionIfNeededTableInput{
refreshPeriod: 1 * time.Minute, refreshPeriod: 1 * time.Minute,
@ -355,7 +351,6 @@ var _ = Describe("Stored Session Suite", func() {
}, },
expectedErr: nil, expectedErr: nil,
expectRefreshed: true, expectRefreshed: true,
expectValidated: true,
}), }),
Entry("when the session is not refreshed by the provider", refreshSessionIfNeededTableInput{ Entry("when the session is not refreshed by the provider", refreshSessionIfNeededTableInput{
refreshPeriod: 1 * time.Minute, refreshPeriod: 1 * time.Minute,
@ -366,7 +361,6 @@ var _ = Describe("Stored Session Suite", func() {
}, },
expectedErr: nil, expectedErr: nil,
expectRefreshed: true, expectRefreshed: true,
expectValidated: true,
}), }),
Entry("when the provider doesn't implement refresh but validation succeeds", refreshSessionIfNeededTableInput{ Entry("when the provider doesn't implement refresh but validation succeeds", refreshSessionIfNeededTableInput{
refreshPeriod: 1 * time.Minute, refreshPeriod: 1 * time.Minute,
@ -376,19 +370,8 @@ var _ = Describe("Stored Session Suite", func() {
}, },
expectedErr: nil, expectedErr: nil,
expectRefreshed: true, expectRefreshed: true,
expectValidated: true,
}), }),
Entry("when the provider refresh fails but validation succeeds", refreshSessionIfNeededTableInput{ Entry("when the session is not refreshed by the provider", refreshSessionIfNeededTableInput{
refreshPeriod: 1 * time.Minute,
session: &sessionsapi.SessionState{
RefreshToken: "RefreshError",
CreatedAt: &createdPast,
},
expectedErr: nil,
expectRefreshed: true,
expectValidated: true,
}),
Entry("when the session is not refreshed by the provider and validation fails", refreshSessionIfNeededTableInput{
refreshPeriod: 1 * time.Minute, refreshPeriod: 1 * time.Minute,
session: &sessionsapi.SessionState{ session: &sessionsapi.SessionState{
AccessToken: "Invalid", AccessToken: "Invalid",
@ -396,9 +379,8 @@ var _ = Describe("Stored Session Suite", func() {
CreatedAt: &createdPast, CreatedAt: &createdPast,
ExpiresOn: &createdFuture, ExpiresOn: &createdFuture,
}, },
expectedErr: errors.New("session is invalid"), expectedErr: nil,
expectRefreshed: true, expectRefreshed: true,
expectValidated: true,
}), }),
) )
}) })