@@ -145,8 +145,22 @@ func DoUserLogin(url, provider, user, pass, ttl, desc, cacert string, insecure b
145145 return "" , "" , fmt .Errorf ("Invalid ttl value: %s" , ttl )
146146 }
147147
148+ authType := map [string ]string {
149+ "local" : "local" ,
150+ "activedirectory" : "activeDirectory" ,
151+ "adfs" : "adfs" ,
152+ "azuread" : "azureAD" ,
153+ "freeipa" : "freeIpa" ,
154+ "generic_oidc" : "generic_oidc" ,
155+ "github" : "github" ,
156+ "keycloak" : "keyCloak" ,
157+ "okta" : "okta" ,
158+ "openldap" : "openLdap" ,
159+ "ping" : "ping" ,
160+ }
161+
148162 payload , err := json .Marshal (map [string ]any {
149- "type" : fmt .Sprintf ("%sProvider" , provider ),
163+ "type" : fmt .Sprintf ("%sProvider" , authType [ provider ] ),
150164 "username" : user ,
151165 "password" : pass ,
152166 "ttl" : TTL ,
@@ -157,7 +171,7 @@ func DoUserLogin(url, provider, user, pass, ttl, desc, cacert string, insecure b
157171 }
158172
159173 loginURL := url + "/v1-public/login"
160- v3loginURL := fmt .Sprintf ("%s/v3-public/%sProviders/%s?action=login" , url , provider , provider )
174+ v3loginURL := fmt .Sprintf ("%s/v3-public/%sProviders/%s?action=login" , url , authType [ provider ] , provider )
161175
162176 loginHead := map [string ]string {
163177 "Accept" : "application/json" ,
@@ -167,11 +181,11 @@ func DoUserLogin(url, provider, user, pass, ttl, desc, cacert string, insecure b
167181 errPrefix := "Doing user login"
168182
169183 // Login with user and pass
170- respBody , resp , err := DoPost (loginURL , string (payload ), cacert , insecure , loginHead )
184+ respBody , resp , err := DoPost (v3loginURL , string (payload ), cacert , insecure , loginHead )
171185 if resp != nil && resp .StatusCode == http .StatusNotFound {
172- // /v1 -public/login endpoint is not available
173- // try to fall back to /v3 -public endpoint.
174- respBody , _ , err = DoPost (v3loginURL , string (payload ), cacert , insecure , loginHead )
186+ // /v3 -public/login endpoint is not available
187+ // try to fall back to /v1 -public endpoint.
188+ respBody , _ , err = DoPost (loginURL , string (payload ), cacert , insecure , loginHead )
175189 if err != nil {
176190 return "" , "" , fmt .Errorf ("%s: %v" , errPrefix , err )
177191 }
0 commit comments