(c flags.FlagContext)
| 168 | } |
| 169 | |
| 170 | func (cmd Login) authenticateSSO(c flags.FlagContext) error { |
| 171 | prompts, err := cmd.authenticator.GetLoginPromptsAndSaveUAAServerURL() |
| 172 | if err != nil { |
| 173 | return err |
| 174 | } |
| 175 | |
| 176 | credentials := make(map[string]string) |
| 177 | passcode := prompts["passcode"] |
| 178 | |
| 179 | if passcode.DisplayName == "" { |
| 180 | passcode = coreconfig.AuthPrompt{ |
| 181 | Type: coreconfig.AuthPromptTypePassword, |
| 182 | DisplayName: T("Temporary Authentication Code ( Get one at {{.AuthenticationEndpoint}}/passcode )", |
| 183 | map[string]interface{}{ |
| 184 | "AuthenticationEndpoint": cmd.config.AuthenticationEndpoint(), |
| 185 | }), |
| 186 | } |
| 187 | } |
| 188 | |
| 189 | for i := 0; i < maxLoginTries; i++ { |
| 190 | if c.IsSet("sso-passcode") && i == 0 { |
| 191 | credentials["passcode"] = c.String("sso-passcode") |
| 192 | } else { |
| 193 | credentials["passcode"] = cmd.ui.AskForPassword(passcode.DisplayName) |
| 194 | } |
| 195 | |
| 196 | cmd.ui.Say(T("Authenticating...")) |
| 197 | err = cmd.authenticator.Authenticate(credentials) |
| 198 | |
| 199 | if err == nil { |
| 200 | cmd.ui.Ok() |
| 201 | cmd.ui.Say("") |
| 202 | break |
| 203 | } |
| 204 | |
| 205 | cmd.ui.Say(err.Error()) |
| 206 | } |
| 207 | |
| 208 | if err != nil { |
| 209 | return errors.New(T("Unable to authenticate.")) |
| 210 | } |
| 211 | return nil |
| 212 | } |
| 213 | |
| 214 | func (cmd Login) authenticate(c flags.FlagContext) error { |
| 215 | if cmd.config.UAAGrantType() == "client_credentials" { |
no test coverage detected