MCPcopy
hub / github.com/cloudfoundry/cli / authenticate

Method authenticate

command/v7/login_command.go:261–321  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

259}
260
261func (cmd *LoginCommand) authenticate() error {
262 var err error
263 credentials := make(map[string]string)
264
265 prompts, err := cmd.Actor.GetLoginPrompts()
266 if err != nil {
267 return err
268 }
269
270 nonSensitivePrompts, sensitivePrompts := cmd.groupPrompts(prompts)
271
272 if value, ok := prompts["username"]; ok {
273 credentials["username"], err = cmd.getFlagValOrPrompt(&cmd.Username, value, true)
274 if err != nil {
275 return err
276 }
277 }
278
279 for key, prompt := range nonSensitivePrompts {
280 credentials[key], err = cmd.UI.DisplayTextPrompt(prompt.DisplayName)
281 if err != nil {
282 return err
283 }
284 }
285
286 for i := 0; i < maxLoginTries; i++ {
287 // ensure that password gets prompted before other codes (eg. mfa code)
288 if prompt, ok := prompts["password"]; ok {
289 credentials["password"], err = cmd.getFlagValOrPrompt(&cmd.Password, prompt, false)
290 if err != nil {
291 return err
292 }
293 }
294
295 for key, prompt := range sensitivePrompts {
296 credentials[key], err = cmd.UI.DisplayPasswordPrompt(prompt.DisplayName)
297 if err != nil {
298 return err
299 }
300 }
301
302 cmd.UI.DisplayNewline()
303 cmd.UI.DisplayText("Authenticating...")
304
305 err = cmd.Actor.Authenticate(credentials, cmd.Origin, constant.GrantTypePassword)
306
307 if err == nil {
308 cmd.UI.DisplayOK()
309 break
310 }
311
312 cmd.UI.DisplayWarning(translatableerror.ConvertToTranslatableError(err).Error())
313 cmd.UI.DisplayNewline()
314
315 if _, ok := err.(uaa.AccountLockedError); ok {
316 break
317 }
318 }

Callers 1

ExecuteMethod · 0.95

Calls 12

groupPromptsMethod · 0.95
getFlagValOrPromptMethod · 0.95
GetLoginPromptsMethod · 0.65
DisplayTextPromptMethod · 0.65
DisplayPasswordPromptMethod · 0.65
DisplayNewlineMethod · 0.65
DisplayTextMethod · 0.65
AuthenticateMethod · 0.65
DisplayOKMethod · 0.65
DisplayWarningMethod · 0.65
ErrorMethod · 0.65

Tested by

no test coverage detected