com.maverick.sshd.auth
Class NoneAuthentication

java.lang.Object
  extended by com.maverick.sshd.auth.NoneAuthentication
All Implemented Interfaces:
com.maverick.ssh.components.SshComponent, AuthenticationMechanism

public class NoneAuthentication
extends Object
implements AuthenticationMechanism

This authentication mechanism can be used to send custom banner messages to the client. When an SSH client connects it sends a 'none' authentication request with the username of the connecting user, normally the Maverick SSHD will send the default banner message configured in the ConfigurationContext.

However you can extend this class and override the getBannerForUser method to return a banner message for a specific user. To configure the SSHD to use your class instead of the default behaviour add it to the supported authentication mechanisms in your SshDaemon.configure method. Also make sure that no banner is configured in the SshContext.

context.supportedAuthenticationMechanisms().add("none", MyNoneAuthentication.class);

Author:
Lee David Painter

Constructor Summary
NoneAuthentication(org.apache.mina.core.session.IoSession session, AuthenticationProtocol auth)
           
 
Method Summary
 String getBannerForUser(String username)
          Override this method to send user customized banners, if this method is overridden then com.maverick.sshd.SshContext.setBannerMessage(null) should be set to null.
 String getName()
          Return the SSH method name for this authentication.
 boolean isPassword()
          Is this password authentication? We use this so user does not end up having to submit their password if an alternative method provides password authentication but is not the core "password" method (for example keyboard-interactive).
 boolean processMessage(byte[] msg)
          If the SSH protocol authentication method defines additional messages which are sent from the client, they will be passed into your implementation here when received.
 boolean startRequest(String username, byte[] msg)
          Start an authentication transaction.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

NoneAuthentication

public NoneAuthentication(org.apache.mina.core.session.IoSession session,
                          AuthenticationProtocol auth)
Method Detail

getName

public final String getName()
Return the SSH method name for this authentication.

Specified by:
getName in interface com.maverick.ssh.components.SshComponent
Specified by:
getName in interface AuthenticationMechanism
Returns:
String

processMessage

public final boolean processMessage(byte[] msg)
                             throws IOException
If the SSH protocol authentication method defines additional messages which are sent from the client, they will be passed into your implementation here when received.

Specified by:
processMessage in interface AuthenticationMechanism
Parameters:
msg - byte[]
Returns:
boolean
Throws:
IOException

getBannerForUser

public String getBannerForUser(String username)
Override this method to send user customized banners, if this method is overridden then com.maverick.sshd.SshContext.setBannerMessage(null) should be set to null.

Parameters:
username -
Returns:

startRequest

public final boolean startRequest(String username,
                                  byte[] msg)
                           throws IOException
Start an authentication transaction.

Specified by:
startRequest in interface AuthenticationMechanism
Parameters:
username - String
msg - the request data from the SSH_MSG_USERAUTH_REQUEST message
Returns:
true if the message was processed, otherwise false
Throws:
IOException

isPassword

public boolean isPassword()
Description copied from interface: AuthenticationMechanism
Is this password authentication? We use this so user does not end up having to submit their password if an alternative method provides password authentication but is not the core "password" method (for example keyboard-interactive).

Specified by:
isPassword in interface AuthenticationMechanism
Returns:


Copyright © 2012. All Rights Reserved.