@Action public void keychainCheckboxClicked(final NSButton sender) { credentials.setSaved(sender.state() == NSCell.NSOnState); } }
@Action public void keychainCheckboxClicked(final NSButton sender) { credentials.setSaved(sender.state() == NSCell.NSOnState); }
protected Credentials prompt(final LoginOptions options, final Credentials credentials) { if(options.save && options.keychain) { if(!PreferencesFactory.get().getBoolean("keychain.secure")) { console.printf(String.format("WARNING! Passwords are stored in plain text in %s.", LocalFactory.get(SupportDirectoryFinderFactory.get().find(), "credentials").getAbbreviatedPath())); } credentials.setSaved(prompt.prompt(LocaleFactory.get().localize("Save password", "Credentials"))); } else { credentials.setSaved(options.save); } return credentials; } }
@Override public char[] reqPassword(Resource<?> resource) { if(StringUtils.isEmpty(credentials.getIdentityPassphrase())) { try { // Use password prompt final Credentials input = prompt.prompt(bookmark, LocaleFactory.localizedString("Private key password protected", "Credentials"), String.format("%s (%s)", LocaleFactory.localizedString("Enter the passphrase for the private key file", "Credentials"), identity.getAbbreviatedPath()), new LoginOptions() .icon(bookmark.getProtocol().disk()) .user(false).password(true) ); credentials.setSaved(input.isSaved()); credentials.setIdentityPassphrase(input.getPassword()); } catch(LoginCanceledException e) { canceled.set(true); // Return null if user cancels return StringUtils.EMPTY.toCharArray(); } } return credentials.getIdentityPassphrase().toCharArray(); }
@Override public char[] reqPassword(Resource<?> resource) { if(StringUtils.isEmpty(credentials.getIdentityPassphrase())) { try { // Use password prompt final Credentials input = prompt.prompt(bookmark, LocaleFactory.localizedString("Private key password protected", "Credentials"), String.format("%s (%s)", LocaleFactory.localizedString("Enter the passphrase for the private key file", "Credentials"), identity.getAbbreviatedPath()), new LoginOptions() .icon(bookmark.getProtocol().disk()) .user(false).password(true) ); credentials.setSaved(input.isSaved()); credentials.setIdentityPassphrase(input.getPassword()); } catch(LoginCanceledException e) { // Return null if user cancels return StringUtils.EMPTY.toCharArray(); } } config.setPassword(credentials.getIdentityPassphrase()); return credentials.getIdentityPassphrase().toCharArray(); }
@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); }
/** * 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()); } }
bookmark.getCredentials().setSaved(input.isSaved()); bookmark.getCredentials().setPassword(input.getPassword());
credentials.setUsername(input.getUsername()); credentials.setPassword(input.getPassword()); credentials.setSaved(input.isSaved()); if(input.isPublicKeyAuthentication()) { credentials.setIdentity(input.getIdentity());
System.currentTimeMillis() + response.getExpiresInSeconds() * 1000); credentials.setOauth(tokens); credentials.setSaved(input.isSaved()); return tokens;