git.iko.soy/typeable/oauth2-proxy
on master help sign in
Keycloak provider - Retain user and prefered_username in session (#1815)
5b5894aDamien Degois
CHANGELOG.md+1
@@ -41,6 +41,7 @@ to remain consistent with CLI flags. You should specify `code_challenge_method`
41- [#1750](https://github.com/oauth2-proxy/oauth2-proxy/pull/1750) Fix Nextcloud provider
41- [#1750](https://github.com/oauth2-proxy/oauth2-proxy/pull/1750) Fix Nextcloud provider
42- [#1574](https://github.com/oauth2-proxy/oauth2-proxy/pull/1574) Add Azure groups support and Azure OAuth v2.0 (@adriananeci)
42- [#1574](https://github.com/oauth2-proxy/oauth2-proxy/pull/1574) Add Azure groups support and Azure OAuth v2.0 (@adriananeci)
43- [#1851](https://github.com/oauth2-proxy/oauth2-proxy/pull/1851) Bump golang to 1.19 and min allowed version to 1.18
43- [#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)
44
45
45# V7.3.0
46# V7.3.0
46
47
providers/keycloak.go+14
@@ -98,6 +98,20 @@ func (p *KeycloakProvider) EnrichSession(ctx context.Context, s *sessions.Sessio
98 }
98 }
99 s.Email = email
99 s.Email = email
100
100
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+
101 return nil
115 return nil
102}
116}
103
117