2 * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.netconf.nettyutil.handler.ssh.authentication;
11 import java.io.IOException;
12 import org.apache.sshd.ClientSession;
13 import org.apache.sshd.client.future.AuthFuture;
14 import org.opendaylight.aaa.encrypt.AAAEncryptionService;
17 * Class Providing username/password authentication option to
18 * {@link org.opendaylight.netconf.nettyutil.handler.ssh.client.AsyncSshHandler}
20 public class LoginPassword extends AuthenticationHandler {
22 private final String username;
23 private final String password;
24 private final AAAEncryptionService encryptionService;
26 public LoginPassword(String username, String password) {
27 this(username, password, null);
30 public LoginPassword(final String username, final String password, final AAAEncryptionService encryptionService) {
31 this.username = username;
32 this.password = password;
33 this.encryptionService = encryptionService;
37 public String getUsername() {
38 if (encryptionService != null) {
39 return encryptionService.decrypt(username);
46 public AuthFuture authenticate(final ClientSession session) throws IOException {
47 if (encryptionService != null) {
48 final String decryptedPassword = encryptionService.decrypt(password);
49 session.addPasswordIdentity(decryptedPassword);
51 session.addPasswordIdentity(password);
53 return session.auth();