2013-07-29 3 views
10

Я использую этот пример, взятый из Java SFTP Server Library?:SFTP набор сервер пользователя/пароль в Apache Mina SSHD

public void setupSftpServer(){ 
    SshServer sshd = SshServer.setUpDefaultServer(); 
    sshd.setPort(22); 
    sshd.setKeyPairProvider(new SimpleGeneratorHostKeyProvider("hostkey.ser")); 

    List<NamedFactory<UserAuth>> userAuthFactories = new ArrayList<NamedFactory<UserAuth>>(); 
    userAuthFactories.add(new UserAuthNone.Factory()); 
    sshd.setUserAuthFactories(userAuthFactories); 

    sshd.setCommandFactory(new ScpCommandFactory()); 

    List<NamedFactory<Command>> namedFactoryList = new ArrayList<NamedFactory<Command>>(); 
    namedFactoryList.add(new SftpSubsystem.Factory()); 
    sshd.setSubsystemFactories(namedFactoryList); 

    try { 
     sshd.start(); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

Но мне нужно, чтобы установить пользовательский логин и для сервера PW SFTP. Как я могу это сделать? Thanks

+0

Вам повезло? В нем отсутствует документация. Пожалуйста, помогите мне поделиться своим опытом. –

+0

Не повезло, все еще ожидая ответа. – Alvins

+0

Я создал ответ, возможно, он может вам помочь: http://stackoverflow.com/questions/18694108/apache-mina-sshd-problems-with-authentication-method-when-connecting-to-server/21553897#21553897 – Chris

ответ

10

Сменить new UserAuthNone.Factory() на new UserAuthPassword.Factory(), а затем осуществить и зарегистрировать PasswordAuthenticator объект. Его метод authenticate должен возвращать true для действительных параметров имени пользователя и пароля.

List<NamedFactory<UserAuth>> userAuthFactories = new ArrayList<NamedFactory<UserAuth>>(); 
userAuthFactories.add(new UserAuthPassword.Factory()); 
sshd.setUserAuthFactories(userAuthFactories); 

sshd.setPasswordAuthenticator(new PasswordAuthenticator() { 
    public boolean authenticate(String username, String password, ServerSession session) { 
     return "tomek".equals(username) && "123".equals(password); 
    } 
}); 
+0

Мне очень помогло, спасибо! – Chris

Смежные вопросы