2013-07-29 31 views
10

Tôi đang sử dụng ví dụ này, lấy từ Java SFTP Server Library?:SFTP máy chủ thiết lập người dùng/mật khẩu trong 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(); 
    } 
} 

Nhưng tôi cần phải đặt người dùng đăng nhập và pw cho máy chủ SFTP. Tôi có thể làm cái này như thế nào? Cảm ơn

+0

bạn có may mắn không? Nó thiếu tài liệu. Xin hãy giúp tôi chia sẻ kinh nghiệm của bạn. –

+0

Không may mắn, vẫn đang chờ phản hồi. – Alvins

+0

tôi đã tạo câu trả lời, có thể nó có thể giúp bạn: http://stackoverflow.com/questions/18694108/apache-mina-sshd-problems-with-authentication-method-when-connecting-to-server/21553897#21553897 – Chris

Trả lời

10

Thay đổi new UserAuthNone.Factory() thành new UserAuthPassword.Factory() và sau đó triển khai và đăng ký đối tượng PasswordAuthenticator. Phương thức authenticate của nó phải trả lại true cho thông số tên người dùng và mật khẩu hợp lệ.

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

đã giúp tôi rất nhiều, cảm ơn bạn! – Chris

Các vấn đề liên quan