git.iko.soy/typeable/oauth2-proxy
on master help sign in
Merge pull request #1583 from adriananeci/groups_token_to_session

Add groups to session too when creating session from bearer token

commitf820deb96d7270cc988b633458f99d1a529ec1a4 authorJoel Speed <Joel.speed@hotmail.co.uk> dateMon 14 Mar 2022, 09:18 (5 years ago) parentce750e9a392cc1
2 files changed+7−4
CHANGELOG.md+1 pkg/apis/middleware/session.go+6−4
CHANGELOG.md+1
@@ -13,6 +13,7 @@
1313
1414## Changes since v7.2.1
1515
16+- [#1583](https://github.com/oauth2-proxy/oauth2-proxy/pull/1583) Add groups to session too when creating session from bearer token (@adriananeci)
1617- [#1418](https://github.com/oauth2-proxy/oauth2-proxy/pull/1418) Support for passing arbitrary query parameters through from `/oauth2/start` to the identity provider's login URL. Configuration settings control which parameters are passed by default and precisely which values can be overridden per-request (@ianroberts)
1718- [#1559](https://github.com/oauth2-proxy/oauth2-proxy/pull/1559) Introduce ProviderVerifier to clean up OIDC discovery code (@JoelSpeed)
1819- [#1561](https://github.com/oauth2-proxy/oauth2-proxy/pull/1561) Add ppc64le support (@mgiessing)
pkg/apis/middleware/session.go+6−4
@@ -20,10 +20,11 @@ type VerifyFunc func(ctx context.Context, token string) (*oidc.IDToken, error)
2020func CreateTokenToSessionFunc(verify VerifyFunc) TokenToSessionFunc {
2121 return func(ctx context.Context, token string) (*sessionsapi.SessionState, error) {
2222 var claims struct {
23− Subject string `json:"sub"`
24− Email string `json:"email"`
25− Verified *bool `json:"email_verified"`
26− PreferredUsername string `json:"preferred_username"`
23+ Subject string `json:"sub"`
24+ Email string `json:"email"`
25+ Verified *bool `json:"email_verified"`
26+ PreferredUsername string `json:"preferred_username"`
27+ Groups []string `json:"groups"`
2728 }
2829
2930 idToken, err := verify(ctx, token)
@@ -46,6 +47,7 @@ func CreateTokenToSessionFunc(verify VerifyFunc) TokenToSessionFunc {
4647 newSession := &sessionsapi.SessionState{
4748 Email: claims.Email,
4849 User: claims.Subject,
50+ Groups: claims.Groups,
4951 PreferredUsername: claims.PreferredUsername,
5052 AccessToken: token,
5153 IDToken: token,