org.apache.thrift.transport
Class TSaslServerTransport.Factory

java.lang.Object
  extended by org.apache.thrift.transport.TTransportFactory
      extended by 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
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
 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