@Override public void callback(final int returncode) { if(SheetCallback.CANCEL_OPTION == returncode) { credentials.setPassword(null); } }
@Action public void passwordFieldTextDidChange(NSNotification notification) { credentials.setPassword(inputField.stringValue()); }
@Action public void passwordFieldTextDidChange(NSNotification notification) { credentials.setPassword(passwordField.stringValue()); }
break; case "secret_key": current.getCredentials().setPassword(value); break;
@Override public void validate(final Host bookmark, final String message, final LoginCallback prompt, final LoginOptions options) throws LoginCanceledException, LoginFailureException { final Credentials credentials = bookmark.getCredentials(); if(input.hasOption(TerminalOptionsBuilder.Params.username.name())) { credentials.setUsername(input.getOptionValue(TerminalOptionsBuilder.Params.username.name())); } if(input.hasOption(TerminalOptionsBuilder.Params.password.name())) { credentials.setPassword(input.getOptionValue(TerminalOptionsBuilder.Params.password.name())); } if(input.hasOption(TerminalOptionsBuilder.Params.identity.name())) { credentials.setIdentity(LocalFactory.get(input.getOptionValue(TerminalOptionsBuilder.Params.identity.name()))); } if(StringUtils.isNotBlank(credentials.getUsername()) && StringUtils.isNotBlank(credentials.getPassword())) { return; } super.validate(bookmark, message, prompt, options); } }
protected void add(final String fullname, final String hostname, final int port, final String user, final String password, final String path) { final Protocol protocol = this.getProtocol(fullname); if(null == protocol) { log.warn(String.format("Unknown service type for %s", fullname)); return; } final Host host = new Host(protocol, hostname, port); host.getCredentials().setUsername(user); host.getCredentials().setPassword(password); if(StringUtils.isNotBlank(path)) { host.setDefaultPath(PathNormalizer.normalize(path)); } host.setComment(UserDateFormatterFactory.get().getLongFormat(new Date().getTime())); this.add(fullname, host); }
@Action public void anonymousCheckboxClicked(final NSButton sender) { if(sender.state() == NSCell.NSOnState) { credentials.setUsername(preferences.getProperty("connection.login.anon.name")); credentials.setPassword(preferences.getProperty("connection.login.anon.pass")); } if(sender.state() == NSCell.NSOffState) { if(preferences.getProperty("connection.login.name").equals( preferences.getProperty("connection.login.anon.name"))) { credentials.setUsername(StringUtils.EMPTY); } else { credentials.setUsername(preferences.getProperty("connection.login.name")); } credentials.setPassword(null); } this.update(); }
bookmark.getHostname(), credentials.getUsername(), credentials.getPassword()); credentials.setPassword(null);
@Override public Credentials prompt(final Host bookmark, final String title, final String reason, final LoginOptions options) throws LoginCanceledException { console.printf("%n%s", new StringAppender().append(title).append(reason)); try { final char[] input = console.readPassword("%n%s: ", options.getPasswordPlaceholder()); final Credentials credentials = new Credentials(); credentials.setPassword(String.valueOf(input)); return this.prompt(options, credentials); } catch(ConnectionCanceledException e) { throw new LoginCanceledException(e); } }
credentials.setPassword(password);
break; case "password": current.getCredentials().setPassword(value); break; case "anonymous":
@Override public void change(final Host bookmark) { updateField(passwordField, credentials.getPassword()); passwordField.cell().setPlaceholderString(options.getPasswordPlaceholder()); passwordField.setEnabled(options.password && !credentials.isAnonymousLogin()); if(options.keychain) { if(StringUtils.isBlank(bookmark.getHostname())) { return; } if(StringUtils.isBlank(credentials.getUsername())) { return; } final String password = keychain.getPassword(bookmark.getProtocol().getScheme(), bookmark.getPort(), bookmark.getHostname(), credentials.getUsername()); if(StringUtils.isNotBlank(password)) { credentials.setPassword(password); updateField(passwordField, password); } } } });
@Override public Credentials configure(final Host host) { final Credentials credentials = new Credentials(host.getCredentials()); // Only for AWS if(host.getHostname().endsWith(PreferencesFactory.get().getProperty("s3.hostname.default"))) { if(!credentials.validate(host.getProtocol(), new LoginOptions(host.getProtocol()).password(false))) { // Lookup from default profile if no access key is set in bookmark for(AWSCredentialsProvider provider : providers) { try { final AWSCredentials c = provider.getCredentials(); credentials.setUsername(c.getAWSAccessKeyId()); credentials.setPassword(c.getAWSSecretKey()); if(c instanceof AWSSessionCredentials) { credentials.setToken(((AWSSessionCredentials) c).getSessionToken()); } break; } catch(SdkClientException e) { log.debug(String.format("Ignore failure loading credentials from provider %s", provider)); // Continue searching with next provider } } } } return credentials; }
bookmark.getCredentials().setPassword(input.getPassword());
@Override public Credentials prompt(final Host bookmark, final String username, final String title, final String reason, final LoginOptions options) throws LoginCanceledException { console.printf("%n%s", new StringAppender().append(title).append(reason)); try { final Credentials credentials = new Credentials(username); if(options.user) { if(StringUtils.isBlank(credentials.getUsername())) { final String user = console.readLine("%n%s: ", options.getUsernamePlaceholder()); credentials.setUsername(user); } else { final String user = console.readLine("%n%s (%s): ", options.getUsernamePlaceholder(), credentials.getUsername()); if(StringUtils.isNotBlank(user)) { credentials.setUsername(user); } } console.printf("Login as %s", credentials.getUsername()); } if(options.password) { final char[] input = console.readPassword("%n%s: ", options.getPasswordPlaceholder()); credentials.setPassword(String.valueOf(input)); Arrays.fill(input, ' '); } return this.prompt(options, credentials); } catch(ConnectionCanceledException e) { throw new LoginCanceledException(e); } }
@Override public void endElement(String name, String elementText) { if(null == current) { return; } switch(name) { case "ServicePoint": current.setHostname(elementText); break; case "AWSKey": current.getCredentials().setUsername(elementText); break; case "Account": current.getCredentials().setUsername(elementText); break; case "SharedKey": current.getCredentials().setPassword(elementText); break; case "Name": current.setNickname(elementText); break; case "Settings": add(current); current = null; break; } } }
@Override public Boolean authenticate(final Host bookmark, final LoginCallback callback, final CancelCallback cancel) throws BackgroundException { final Credentials credentials = bookmark.getCredentials(); if(StringUtils.isBlank(credentials.getPassword())) { final Credentials input = callback.prompt(bookmark, credentials.getUsername(), String.format("%s %s", LocaleFactory.localizedString("Login", "Login"), bookmark.getHostname()), MessageFormat.format(LocaleFactory.localizedString( "Login {0} with username and password", "Credentials"), BookmarkNameProvider.toString(bookmark)), // Change of username or service not allowed new LoginOptions(bookmark.getProtocol()).user(false)); if(input.isPublicKeyAuthentication()) { credentials.setIdentity(input.getIdentity()); return new SFTPPublicKeyAuthentication(session).authenticate(bookmark, callback, cancel); } credentials.setSaved(input.isSaved()); credentials.setPassword(input.getPassword()); } return this.authenticate(bookmark, credentials, callback, cancel); }
credentials.setPassword(null); return true; LocaleFactory.localizedString("Login failed", "Credentials"), e.getDetail(), options); credentials.setUsername(input.getUsername()); credentials.setPassword(input.getPassword()); credentials.setSaved(input.isSaved()); if(input.isPublicKeyAuthentication()) {
/** * Prompt for credentials if not found in keychain * * @param bookmark Host configuration * @param message Message in prompt * @param prompt Login prompt * @param options Available login options for protocol * @throws LoginCanceledException Prompt canceled by user */ public void prompt(final Host bookmark, final String message, final LoginCallback prompt, final LoginOptions options) throws LoginCanceledException { final Credentials credentials = bookmark.getCredentials(); if(options.password) { final Credentials input = prompt.prompt(bookmark, credentials.getUsername(), String.format("%s %s", LocaleFactory.localizedString("Login", "Login"), bookmark.getHostname()), message, options); credentials.setSaved(input.isSaved()); credentials.setUsername(input.getUsername()); credentials.setPassword(input.getPassword()); credentials.setIdentity(input.getIdentity()); } if(options.token) { final Credentials input = prompt.prompt(bookmark, LocaleFactory.localizedString("Provide additional login credentials", "Credentials"), message, options); credentials.setSaved(input.isSaved()); credentials.setToken(input.getPassword()); } }
@Action public void hostFieldDidChange(final NSNotification sender) { final String input = hostField.stringValue(); if(Scheme.isURL(input)) { final Host parsed = HostParser.parse(input); bookmark.setHostname(parsed.getHostname()); bookmark.setProtocol(parsed.getProtocol()); bookmark.setPort(parsed.getPort()); bookmark.setDefaultPath(parsed.getDefaultPath()); } else { bookmark.setHostname(input); final Credentials auto = CredentialsConfiguratorFactory.get(bookmark.getProtocol()).configure(bookmark); final Credentials credentials = bookmark.getCredentials(); credentials.setUsername(auto.getUsername()); credentials.setPassword(auto.getPassword()); credentials.setIdentity(auto.getIdentity()); credentials.setToken(auto.getToken()); credentials.setCertificate(auto.getCertificate()); } this.update(); }