Java Apache Журналы действий пользователя Mina sshd - PullRequest
0 голосов
/ 27 февраля 2020

Я использую Apache Mina для настройки SSHD-сервера. Он работает нормально, но я аутентифицировал журналы только после того, как пользователи вошли в систему. Как я могу реализовать журналы действий пользователя, такие как загрузка / загрузка, и информацию о файле, такую ​​как имя / размер?

Ниже приведен мой код:

@Service
public class MySftpServer {

    private Log log = LogFactory.getLog(MySftpServer.class);
    private String rootPath = "C:\\SFTPROOT";
    SshServer sshd = SshServer.setUpDefaultServer();
    private String dhp1Path = "C:\\SFTPROOT\\dhp1";
    private String pmi1Path = "C:\\SFTPROOT\\pmi1";

    @PostConstruct
    public void startServer() throws IOException {
        start();
    }

    VirtualFileSystemFactory fsFactory = new VirtualFileSystemFactory(Paths.get(rootPath));

    private void start() throws IOException {

        sshd.setPort(32222);
        sshd.setKeyPairProvider(new SimpleGeneratorHostKeyProvider(new File("host.ser")));
        sshd.setSubsystemFactories(Collections.singletonList(new SftpSubsystemFactory()));
        sshd.setPasswordAuthenticator(new MyPasswordAuthenticator());
        sshd.start();
        log.info("SFTP server started");
    }

    public class MyPasswordAuthenticator implements PasswordAuthenticator {

        public boolean authenticate(String username, String password, ServerSession session) {

            if ("dhp1".equals(username) && "dhp1".equals(password)) {
                sshd.setFileSystemFactory(new VirtualFileSystemFactory() {
                    @Override
                    protected Path computeRootDir(Session session) throws
                        IOException  {
                        return Paths.get(dhp1Path);
                    }

                });
                return true;
            } else if ("pmi1".equals(username) && "pmi1".equals(password)) {
                sshd.setFileSystemFactory(new VirtualFileSystemFactory() {
                    @Override
                    protected Path computeRootDir(Session session) throws
                        IOException  {
                        return Paths.get(pmi1Path);
                    }

                });
                return true;
            }
            return false;
        }
    }      
}

Это единственный аутентифицированный журнал, который я могу иметь.

INFO 264316 --- []-nio2-thread-3] o.a.s.s.session.ServerUserAuthService    : Session dhp1@/0:0:0:0:0:0:0:1:54080 authenticated

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...