Keycloak provider - Retain user and prefered_username in session (#1815)
* Keycloak provider - Retain user and prefered_username in session
* Add CHANGELOG for PR #1815
commit5b5894af07524d2505796013fa776e8d83ada63b
authorDamien Degois <damien@degois.info>
dateMon 24 Oct 2022, 09:47 (4 years ago)
parentece3d62
CHANGELOG.md+1
@@ -41,6 +41,7 @@ to remain consistent with CLI flags. You should specify `code_challenge_method`
4141- [#1750](https://github.com/oauth2-proxy/oauth2-proxy/pull/1750) Fix Nextcloud provider
4242- [#1574](https://github.com/oauth2-proxy/oauth2-proxy/pull/1574) Add Azure groups support and Azure OAuth v2.0 (@adriananeci)
4343- [#1851](https://github.com/oauth2-proxy/oauth2-proxy/pull/1851) Bump golang to 1.19 and min allowed version to 1.18
44+- [#1815](https://github.com/oauth2-proxy/oauth2-proxy/pull/1815) Keycloak: save user and preferredUsername in session to populate headers for the backend (@babs)
4445
4546# V7.3.0
4647
providers/keycloak.go+14
@@ -98,6 +98,20 @@ func (p *KeycloakProvider) EnrichSession(ctx context.Context, s *sessions.Sessio
9898 }
9999 s.Email = email
100100
101+ preferredUsername, err := json.Get("preferred_username").String()
102+ if err == nil {
103+ s.PreferredUsername = preferredUsername
104+ }
105+
106+ user, err := json.Get("user").String()
107+ if err == nil {
108+ s.User = user
109+ }
110+
111+ if s.User == "" && s.PreferredUsername != "" {
112+ s.User = s.PreferredUsername
113+ }
114+
101115 return nil
102116}
103117