Skip to content

Commit 9b8a88a

Browse files
Merge pull request #504 from yaronius/master
Allow for multiple OIDC providers
2 parents 271cf13 + ae33e08 commit 9b8a88a

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

providers/openidConnect/openidConnect.go

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,18 @@ type RefreshTokenResponse struct {
107107
// ID Token decryption is not (yet) supported
108108
// UserInfo decryption is not (yet) supported
109109
func New(clientKey, secret, callbackURL, openIDAutoDiscoveryURL string, scopes ...string) (*Provider, error) {
110+
return NewNamed("", clientKey, secret, callbackURL, openIDAutoDiscoveryURL, scopes...)
111+
}
112+
113+
// NewNamed is similar to New(...) but can be used to set a custom name for the
114+
// provider in order to use multiple OIDC providers
115+
func NewNamed(name, clientKey, secret, callbackURL, openIDAutoDiscoveryURL string, scopes ...string) (*Provider, error) {
116+
switch len(name) {
117+
case 0:
118+
name = "openid-connect"
119+
default:
120+
name = fmt.Sprintf("%s-oidc", strings.ToLower(name))
121+
}
110122
p := &Provider{
111123
ClientKey: clientKey,
112124
Secret: secret,
@@ -121,7 +133,7 @@ func New(clientKey, secret, callbackURL, openIDAutoDiscoveryURL string, scopes .
121133
LastNameClaims: []string{FamilyNameClaim},
122134
LocationClaims: []string{AddressClaim},
123135

124-
providerName: "openid-connect",
136+
providerName: name,
125137
}
126138

127139
openIDConfig, err := getOpenIDConfig(p, openIDAutoDiscoveryURL)

0 commit comments

Comments
 (0)