Package backtype.storm.security.auth.digest

Source Code of backtype.storm.security.auth.digest.DigestSaslTransportPlugin

package backtype.storm.security.auth.digest;

import java.io.IOException;

import javax.security.auth.callback.CallbackHandler;

import org.apache.thrift7.transport.TSaslClientTransport;
import org.apache.thrift7.transport.TSaslServerTransport;
import org.apache.thrift7.transport.TTransport;
import org.apache.thrift7.transport.TTransportException;
import org.apache.thrift7.transport.TTransportFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import backtype.storm.security.auth.AuthUtils;
import backtype.storm.security.auth.SaslTransportPlugin;

public class DigestSaslTransportPlugin extends SaslTransportPlugin {
  public static final String DIGEST = "DIGEST-MD5";
  private static final Logger LOG = LoggerFactory
      .getLogger(DigestSaslTransportPlugin.class);

  protected TTransportFactory getServerTransportFactory() throws IOException {
    // create an authentication callback handler
    CallbackHandler serer_callback_handler = new ServerCallbackHandler(
        login_conf);

    // create a transport factory that will invoke our auth callback for
    // digest
    TSaslServerTransport.Factory factory = new TSaslServerTransport.Factory();
    factory.addServerDefinition(DIGEST, AuthUtils.SERVICE, "localhost",
        null, serer_callback_handler);

    LOG.info("SASL DIGEST-MD5 transport factory will be used");
    return factory;
  }

  public TTransport connect(TTransport transport, String serverHost)
      throws TTransportException, IOException {
    ClientCallbackHandler client_callback_handler = new ClientCallbackHandler(
        login_conf);
    TSaslClientTransport wrapper_transport = new TSaslClientTransport(
        DIGEST, null, AuthUtils.SERVICE, serverHost, null,
        client_callback_handler, transport);

    wrapper_transport.open();
    LOG.debug("SASL DIGEST-MD5 client transport has been established");

    return wrapper_transport;
  }

}
TOP

Related Classes of backtype.storm.security.auth.digest.DigestSaslTransportPlugin

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.