Class Service

java.lang.Object
com.sshtools.j2ssh.transport.Service
Direct Known Subclasses:
AsyncService, AuthenticationProtocolClient

public abstract class Service extends Object

This class implements the transport protocol service.

After the transport protocol negotiates the protocol version and performs server authentication via key exchange, the client requests a service. The service is identified by a name and currently there are 2 services defined.

ssh-userauth
ssh-connection

These 2 services are implemented by the SSH authentication protocol and SSH connection protocol respectivley. Further services can be defined and a similar local naming policy is applied to the service names, as is applied to the algorithm names; a local service should use the "servicename(at)domain" syntax.

Since:
0.2.0
Version:
$Revision: 1.42 $
Author:
Lee David Painter
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final int
    Serivce start mode passed into init method when the service is operating in server mode.
    protected SshMessageStore
    The message store registered with the transport protocol to receive the service's message.
    static final int
    Service start mode passed into init method when the service is operating in client mode.
    protected Integer
    This instances start mode
    protected ServiceState
    The current state of the service
    The underlying transport protocol
  • Constructor Summary

    Constructors
    Constructor
    Description
    Service(String serviceName)
    Constructs the service.
  • Method Summary

    Modifier and Type
    Method
    Description
    final String
    Returns the service name.
    Returns the state of the service.
    void
    init(int startMode, TransportProtocol transport)
    Initialize the service.
    protected abstract void
    Called when the service is accepted by the remote server.
    protected abstract void
    onServiceInit(int startMode)
    Called when the service is intialized.
    protected abstract void
     
    protected abstract void
    Called when the service is started.
    protected void
    Sends the SSH_MSG_SERVICE_ACCEPT message to the client to indicate that the local computer is accepting the remote computers service request.
    final void
    Starts the service.
    final void
    Stops the service.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • REQUESTING_SERVICE

      public static final int REQUESTING_SERVICE
      Service start mode passed into init method when the service is operating in client mode. i.e its requesting a service to be started on the remote server and requires a SSH_MSG_SERVICE_ACCEPT message.
      See Also:
    • ACCEPTING_SERVICE

      public static final int ACCEPTING_SERVICE
      Serivce start mode passed into init method when the service is operating in server mode. i.e a client is requesting a service to be started on the local computer and requires the SSH_MSG_SERVICE_ACCEPT message to be sent.
      See Also:
    • messageStore

      protected SshMessageStore messageStore
      The message store registered with the transport protocol to receive the service's message.
    • transport

      protected TransportProtocol transport
      The underlying transport protocol
    • startMode

      protected Integer startMode
      This instances start mode
    • state

      protected ServiceState state
      The current state of the service
  • Constructor Details

    • Service

      public Service(String serviceName)

      Constructs the service.

      Parameters:
      serviceName - the name of the service
      Since:
      0.2.0
  • Method Details

    • getServiceName

      public final String getServiceName()

      Returns the service name.

      Returns:
      the serivce name
      Since:
      0.2.0
    • start

      public final void start() throws IOException

      Starts the service.

      Throws:
      IOException - if an IO error occurs
      Since:
      0.2.0
    • onStart

      protected abstract void onStart() throws IOException

      Called when the service is started.

      Throws:
      IOException - if an IO error occurs
      Since:
      0.2.0
    • getState

      public ServiceState getState()

      Returns the state of the service.

      Returns:
      the state of the service
      Since:
      0.2.0
      See Also:
    • init

      public void init(int startMode, TransportProtocol transport) throws IOException

      Initialize the service.

      Parameters:
      startMode - the mode of the service
      transport - the underlying transport protocol
      Throws:
      IOException - if an IO error occurs
      Since:
      0.2.0
    • stop

      public final void stop()

      Stops the service.

      Since:
      0.2.0
    • onServiceAccept

      protected abstract void onServiceAccept() throws IOException

      Called when the service is accepted by the remote server.

      Throws:
      IOException
      Since:
      0.2.0
    • onServiceInit

      protected abstract void onServiceInit(int startMode) throws IOException

      Called when the service is intialized.

      Parameters:
      startMode - the mode of the service
      Throws:
      IOException - if an IO error occurs
      Since:
      0.2.0
    • onServiceRequest

      protected abstract void onServiceRequest() throws IOException
      Throws:
      IOException
    • sendServiceAccept

      protected void sendServiceAccept() throws IOException

      Sends the SSH_MSG_SERVICE_ACCEPT message to the client to indicate that the local computer is accepting the remote computers service request.

      Throws:
      IOException - if an IO error occurs
      Since:
      0.2.0