git.iko.soy/typeable/oauth2-proxy
on master help sign in
Fix uninitialized user claim (#1873)

* Fix uninitialized user claim Some providers doesn't initialize data with setProviderDefaults function (keycloak-oidc for example), therefore UserClaim is never initialized with the default value and stay as an empty string. This result in an empty user. * Add CHANGELOG.md entry for #1873 * Call setProviderDefaults where missing Co-authored-by: Joel Speed <Joel.speed@hotmail.co.uk>

commitfd2807c091686a2a23f41123e3470a1076e877a0 authorDamien Degois <damien@degois.info> dateMon 7 Nov 2022, 09:42 (4 years ago) parente9a4654
4 files changed+12−3
CHANGELOG.md+1 providers/gitlab.go+4−1 providers/keycloak_oidc.go+3−1 providers/nextcloud.go+4−1
CHANGELOG.md+1
@@ -8,6 +8,7 @@
88
99## Changes since v7.4.0
1010
11+- [#1873](https://github.com/oauth2-proxy/oauth2-proxy/pull/1873) Fix empty users with some OIDC providers (@babs)
1112- [#1882](https://github.com/oauth2-proxy/oauth2-proxy/pull/1882) Make `htpasswd.GetUsers` racecondition safe
1213- [#1883](https://github.com/oauth2-proxy/oauth2-proxy/pull/1883) Ensure v8 manifest variant is set on docker images
1314
providers/gitlab.go+4−1
@@ -32,7 +32,10 @@ var _ Provider = (*GitLabProvider)(nil)
3232
3333// NewGitLabProvider initiates a new GitLabProvider
3434func NewGitLabProvider(p *ProviderData, opts options.GitLabOptions) (*GitLabProvider, error) {
35− p.ProviderName = gitlabProviderName
35+ p.setProviderDefaults(providerDefaults{
36+ name: gitlabProviderName,
37+ })
38+
3639 if p.Scope == "" {
3740 p.Scope = gitlabDefaultScope
3841 }
providers/keycloak_oidc.go+3−1
@@ -17,7 +17,9 @@ type KeycloakOIDCProvider struct {
1717
1818// NewKeycloakOIDCProvider makes a KeycloakOIDCProvider using the ProviderData
1919func NewKeycloakOIDCProvider(p *ProviderData, opts options.KeycloakOptions) *KeycloakOIDCProvider {
20− p.ProviderName = keycloakOIDCProviderName
20+ p.setProviderDefaults(providerDefaults{
21+ name: keycloakOIDCProviderName,
22+ })
2123
2224 provider := &KeycloakOIDCProvider{
2325 OIDCProvider: &OIDCProvider{
providers/nextcloud.go+4−1
@@ -21,7 +21,10 @@ const nextCloudProviderName = "Nextcloud"
2121
2222// NewNextcloudProvider initiates a new NextcloudProvider
2323func NewNextcloudProvider(p *ProviderData) *NextcloudProvider {
24− p.ProviderName = nextCloudProviderName
24+ p.setProviderDefaults(providerDefaults{
25+ name: nextCloudProviderName,
26+ })
27+
2528 p.getAuthorizationHeaderFunc = makeOIDCHeader
2629 if p.EmailClaim == options.OIDCEmailClaim {
2730 // This implies the email claim has not been overridden, we should set a default