@@ -37,8 +37,8 @@ func (b *IdentityProvider) Authenticate(r *requests.Request) error {
3737 reqPath := r .Upstream .BaseURL + path .Join (r .Upstream .BasePath , r .Upstream .Method , r .Upstream .Realm )
3838 r .Response .Code = http .StatusBadRequest
3939
40- var accessTokenExists , idTokenExists , codeExists , stateExists , errorExists , loginHintExists , additionalScopesExists bool
41- var reqParamsAccessToken , reqParamsIDToken , reqParamsState , reqParamsCode , reqParamsError , reqParamsLoginHint , additionalScopes string
40+ var accessTokenExists , idTokenExists , codeExists , stateExists , errorExists , loginHintExists , idpHintExists , additionalScopesExists bool
41+ var reqParamsAccessToken , reqParamsIDToken , reqParamsState , reqParamsCode , reqParamsError , reqParamsLoginHint , reqParamsIDPHint , additionalScopes string
4242 reqParams := r .Upstream .Request .URL .Query ()
4343 if _ , exists := reqParams ["access_token" ]; exists {
4444 accessTokenExists = true
@@ -64,6 +64,10 @@ func (b *IdentityProvider) Authenticate(r *requests.Request) error {
6464 loginHintExists = true
6565 reqParamsLoginHint = reqParams ["login_hint" ][0 ]
6666 }
67+ if _ , exists := reqParams ["idp_hint" ]; exists {
68+ idpHintExists = true
69+ reqParamsIDPHint = reqParams ["idp_hint" ][0 ]
70+ }
6771 if _ , exists := reqParams ["additional_scopes" ]; exists {
6872 additionalScopesExists = true
6973 additionalScopes = reqParams ["additional_scopes" ][0 ]
@@ -238,6 +242,9 @@ func (b *IdentityProvider) Authenticate(r *requests.Request) error {
238242 if loginHintExists {
239243 params .Set ("login_hint" , reqParamsLoginHint )
240244 }
245+ if idpHintExists {
246+ params .Set ("kc_idp_hint" , reqParamsIDPHint )
247+ }
241248
242249 params .Set ("client_id" , b .config .ClientID )
243250
0 commit comments