org.apache.thrift.transport

## Class TSaslServerTransport.Factory

- java.lang.Object
- - org.apache.thrift.transport.TTransportFactory
  - - org.apache.thrift.transport.TSaslServerTransport.Factory

- Enclosing class:
    TSaslServerTransport

      public static class TSaslServerTransport.Factory
      extends TTransportFactory

  `TTransportFactory` to create `TSaslServerTransports. Ensures that a given underlying `TTransport` instance receives the same `TSaslServerTransport`. This is kind of an awful hack to work around the fact that Thrift is designed assuming that `TTransport` instances are stateless, and thus the existing `TServers` use different `TTransport` instances for input and output.`

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `TSaslServerTransport.Factory()` Create a new Factory.
    `TSaslServerTransport.Factory(java.lang.String mechanism, java.lang.String protocol, java.lang.String serverName, java.util.Map<java.lang.String,java.lang.String> props, javax.security.auth.callback.CallbackHandler cbh)` Create a new `Factory`, initially with the single server definition given.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addServerDefinition(java.lang.String mechanism, java.lang.String protocol, java.lang.String serverName, java.util.Map<java.lang.String,java.lang.String> props, javax.security.auth.callback.CallbackHandler cbh)` Add a supported server definition to the transports created by this factory.
    `TTransport` | `getTransport(TTransport base)` Get a new `TSaslServerTransport` instance, or reuse the existing one if a `TSaslServerTransport` has already been created before using the given `TTransport` as an underlying transport.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### TSaslServerTransport.Factory

          public TSaslServerTransport.Factory()

      Create a new Factory. Assumes that `addServerDefinition` will be called later.

    - #### TSaslServerTransport.Factory

          public TSaslServerTransport.Factory(java.lang.String mechanism,
                                      java.lang.String protocol,
                                      java.lang.String serverName,
                                      java.util.Map<java.lang.String,java.lang.String> props,
                                      javax.security.auth.callback.CallbackHandler cbh)

      Create a new `Factory`, initially with the single server definition given. You may still call `addServerDefinition` later. See the Java documentation for `Sasl.createSaslServer` for the details of the parameters.

  - ### Method Detail

    - #### addServerDefinition

          public void addServerDefinition(java.lang.String mechanism,
                                 java.lang.String protocol,
                                 java.lang.String serverName,
                                 java.util.Map<java.lang.String,java.lang.String> props,
                                 javax.security.auth.callback.CallbackHandler cbh)

      Add a supported server definition to the transports created by this factory. See the Java documentation for `Sasl.createSaslServer` for the details of the parameters.

    - #### getTransport

          public TTransport getTransport(TTransport base)

      Get a new `TSaslServerTransport` instance, or reuse the existing one if a `TSaslServerTransport` has already been created before using the given `TTransport` as an underlying transport. This ensures that a given underlying transport instance receives the same `TSaslServerTransport`.
      Overrides:
        `getTransport` in class `TTransportFactory`
      Parameters:
        `base` - The base transport
      Returns:
        Wrapped Transport