org.apache.sshd.server.auth.UserAuth Java Examples
The following examples show how to use
org.apache.sshd.server.auth.UserAuth.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: ESBJAVA3470.java From product-ei with Apache License 2.0 | 5 votes |
/** * Starts a SFTP server on port 22 * @param carbonHome */ private void setupSftpServer(String carbonHome) { SshServer sshd = SshServer.setUpDefaultServer(); sshd.setPort(FTP_PORT); //sshd.setKeyPairProvider(new FileKeyPairProvider(new String[]{"/home/ravi/WORK/SUPPORT/JIRA/SKYTVNZDEV-26/SftpTest/dist/hostkey.ser"})); ClassLoader classLoader = getClass().getClassLoader(); log.info("Using identity file: " + classLoader.getResource("sftp/id_rsa.pub").getFile()); File file = new File(classLoader.getResource("sftp/id_rsa.pub").getFile()); SFTPServer sftpServer = new SFTPServer(); sshd.setKeyPairProvider(sftpServer.createTestHostKeyProvider(Paths.get(file.getAbsolutePath()))); sshd.setKeyPairProvider(createTestHostKeyProvider(Paths.get(file.getAbsolutePath()))); sshd.setUserAuthFactories( Arrays.<NamedFactory<UserAuth>>asList(new UserAuthPublicKeyFactory())); sshd.setFileSystemFactory(new VirtualFileSystemFactory(Paths.get(carbonHome))); sshd.setPublickeyAuthenticator(new PublickeyAuthenticator() { public boolean authenticate(String username, PublicKey key, ServerSession session) { return "sftpuser".equals(username); } }); sshd.setCommandFactory(new ScpCommandFactory()); sshd.setSubsystemFactories( Arrays.<NamedFactory<Command>>asList(new SftpSubsystemFactory())); try { sshd.start(); } catch (Exception e) { e.printStackTrace(); } }
Example #2
Source File: AsyncUserAuthService.java From aesh-readline with Apache License 2.0 | 5 votes |
public AsyncUserAuthService(Session s) throws SshException { ValidateUtils.checkTrue(s instanceof ServerSession, "Server side service used on client side"); if (s.isAuthenticated()) { throw new SshException("Session already authenticated"); } this.session = (ServerSession) s; maxAuthRequests = session.getIntProperty(ServerFactoryManager.MAX_AUTH_REQUESTS, DEFAULT_MAX_AUTH_REQUESTS); ServerFactoryManager manager = getFactoryManager(); userAuthFactories = new ArrayList<>(manager.getUserAuthFactories()); // Get authentication methods authMethods = new ArrayList<>(); String mths = FactoryManagerUtils.getString(manager, ServerFactoryManager.AUTH_METHODS); if (GenericUtils.isEmpty(mths)) { for (NamedFactory<UserAuth> uaf : manager.getUserAuthFactories()) { authMethods.add(new ArrayList<>(Collections.singletonList(uaf.getName()))); } } else { for (String mthl : mths.split("\\s")) { authMethods.add(new ArrayList<>(Arrays.asList(mthl.split(",")))); } } // Verify all required methods are supported for (List<String> l : authMethods) { for (String m : l) { NamedFactory<UserAuth> factory = NamedResource.Utils.findByName(m, String.CASE_INSENSITIVE_ORDER, userAuthFactories); if (factory == null) { throw new SshException("Configured method is not supported: " + m); } } } if (LOGGER.isLoggable(Level.FINE)) { LOGGER.fine("Authorized authentication methods: "+ NamedResource.Utils.getNames(userAuthFactories)); } }
Example #3
Source File: AsyncUserAuthService.java From termd with Apache License 2.0 | 4 votes |
public AsyncUserAuthService(Session s) throws SshException { ValidateUtils.checkTrue(s instanceof ServerSession, "Server side service used on client side"); if (s.isAuthenticated()) { throw new SshException("Session already authenticated"); } serverSession = (ServerSession) s; maxAuthRequests = PropertyResolverUtils.getIntProperty(s, ServerAuthenticationManager.MAX_AUTH_REQUESTS, ServerAuthenticationManager.DEFAULT_MAX_AUTH_REQUESTS); List<NamedFactory<UserAuth>> factories = ValidateUtils.checkNotNullAndNotEmpty( serverSession.getUserAuthFactories(), "No user auth factories for %s", s); userAuthFactories = new ArrayList<NamedFactory<UserAuth>>(factories); // Get authentication methods authMethods = new ArrayList<List<String>>(); String mths = PropertyResolverUtils.getString(s, ServerFactoryManager.AUTH_METHODS); if (GenericUtils.isEmpty(mths)) { for (NamedFactory<UserAuth> uaf : factories) { authMethods.add(new ArrayList<String>(Collections.singletonList(uaf.getName()))); } } else { if (log.isDebugEnabled()) { log.debug("ServerUserAuthService({}) using configured methods={}", s, mths); } for (String mthl : mths.split("\\s")) { authMethods.add(new ArrayList<String>(Arrays.asList(GenericUtils.split(mthl, ',')))); } } // Verify all required methods are supported for (List<String> l : authMethods) { for (String m : l) { NamedFactory<UserAuth> factory = NamedResource.Utils.findByName(m, String.CASE_INSENSITIVE_ORDER, userAuthFactories); if (factory == null) { throw new SshException("Configured method is not supported: " + m); } } } if (log.isDebugEnabled()) { log.debug("ServerUserAuthService({}) authorized authentication methods: {}", s, NamedResource.Utils.getNames(userAuthFactories)); } }
Example #4
Source File: TestSSHInfrastructureV2.java From scheduling with GNU Affero General Public License v3.0 | 4 votes |
@BeforeClass public static void startSSHServer() throws Exception { // Disable bouncy castle to avoid versions conflict System.setProperty("org.apache.sshd.registerBouncyCastle", "false"); sshd = SshServer.setUpDefaultServer(); SimpleGeneratorHostKeyProvider keyProvider = new SimpleGeneratorHostKeyProvider(); keyProvider.setAlgorithm("RSA"); sshd.setKeyPairProvider(keyProvider); List<NamedFactory<UserAuth>> userAuthFactories = new ArrayList<>(1); userAuthFactories.add(new UserAuthPasswordFactory()); sshd.setUserAuthFactories(userAuthFactories); sshd.setPasswordAuthenticator(new PasswordAuthenticator() { @Override public boolean authenticate(String username, String password, ServerSession session) { return username != null && username.equals(password); } }); CommandFactory cf = new CommandFactory() { @Override public Command createCommand(String command) { String[] splitCommand; if (OsUtils.isUNIX()) { splitCommand = SSHInfrastructureHelper.splitCommand(command); } else if (OsUtils.isWin32()) { splitCommand = SSHInfrastructureHelper.splitCommandWithoutRemovingQuotes(command); } else { throw new IllegalStateException("Operating system is not recognized"); } StringBuilder rebuiltCommand = new StringBuilder(); for (String commandPiece : splitCommand) { rebuiltCommand.append(commandPiece).append(" "); } rebuiltCommand.trimToSize(); if (OsUtils.isUNIX()) { return new ProcessShellFactory(new String[] { "/bin/sh", "-c", rebuiltCommand.toString() }).create(); } else { return new ProcessShellFactory(new String[] { "cmd.exe", "/C", rebuiltCommand.toString() }).create(); } } }; sshd.setCommandFactory(cf); sshd.start(); port = sshd.getPort(); javaExePath = System.getProperty("java.home") + File.separator + "bin" + File.separator + (OsUtils.isWin32() ? "java.exe" : "java"); javaExePath = "\"" + javaExePath + "\""; infraParams = new Object[] { ("localhost " + NB_NODES + "\n").getBytes(), //hosts 60000, //timeout 0, //attempts 10, //wait between failures port, //ssh server port "toto", //ssh username "toto", //ssh password new byte[0], // optional ssh private key new byte[0], // optional ssh options file javaExePath, //java path on the remote machines PAResourceManagerProperties.RM_HOME.getValueAsString(), //Scheduling path on remote machines OperatingSystem.getOperatingSystem(), "" }; // extra java options policyParameters = new Object[] { AccessType.ALL.toString(), AccessType.ALL.toString(), "20000" }; }
Example #5
Source File: AsyncUserAuthService.java From termd with Apache License 2.0 | 4 votes |
public AsyncUserAuthService(Session s) throws SshException { ValidateUtils.checkTrue(s instanceof ServerSession, "Server side service used on client side"); if (s.isAuthenticated()) { throw new SshException("Session already authenticated"); } serverSession = (ServerSession) s; maxAuthRequests = PropertyResolverUtils.getIntProperty(s, ServerAuthenticationManager.MAX_AUTH_REQUESTS, ServerAuthenticationManager.DEFAULT_MAX_AUTH_REQUESTS); List<NamedFactory<UserAuth>> factories = ValidateUtils.checkNotNullAndNotEmpty( serverSession.getUserAuthFactories(), "No user auth factories for %s", s); userAuthFactories = new ArrayList<>(factories); // Get authentication methods authMethods = new ArrayList<>(); String mths = PropertyResolverUtils.getString(s, ServerFactoryManager.AUTH_METHODS); if (GenericUtils.isEmpty(mths)) { for (NamedFactory<UserAuth> uaf : factories) { authMethods.add(new ArrayList<>(Collections.singletonList(uaf.getName()))); } } else { if (log.isDebugEnabled()) { log.debug("ServerUserAuthService({}) using configured methods={}", s, mths); } for (String mthl : mths.split("\\s")) { authMethods.add(new ArrayList<>(Arrays.asList(GenericUtils.split(mthl, ',')))); } } // Verify all required methods are supported for (List<String> l : authMethods) { for (String m : l) { NamedFactory<UserAuth> factory = NamedResource.Utils.findByName(m, String.CASE_INSENSITIVE_ORDER, userAuthFactories); if (factory == null) { throw new SshException("Configured method is not supported: " + m); } } } if (log.isDebugEnabled()) { log.debug("ServerUserAuthService({}) authorized authentication methods: {}", s, NamedResource.Utils.getNames(userAuthFactories)); } }