当前位置: 首页>>代码示例>>Java>>正文


Java TSaslServerTransport.getSaslServer方法代码示例

本文整理汇总了Java中org.apache.thrift.transport.TSaslServerTransport.getSaslServer方法的典型用法代码示例。如果您正苦于以下问题:Java TSaslServerTransport.getSaslServer方法的具体用法?Java TSaslServerTransport.getSaslServer怎么用?Java TSaslServerTransport.getSaslServer使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.apache.thrift.transport.TSaslServerTransport的用法示例。


在下文中一共展示了TSaslServerTransport.getSaslServer方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: process

import org.apache.thrift.transport.TSaslServerTransport; //导入方法依赖的package包/类
public boolean process(final TProtocol inProt, final TProtocol outProt) throws TException {
    // populating request context
    ReqContext req_context = ReqContext.context();

    TTransport trans = inProt.getTransport();
    // Sasl transport
    TSaslServerTransport saslTrans = (TSaslServerTransport) trans;
    // remote address
    TSocket tsocket = (TSocket) saslTrans.getUnderlyingTransport();
    Socket socket = tsocket.getSocket();
    req_context.setRemoteAddress(socket.getInetAddress());

    // remote subject
    SaslServer saslServer = saslTrans.getSaslServer();
    String authId = saslServer.getAuthorizationID();
    Subject remoteUser = new Subject();
    remoteUser.getPrincipals().add(new User(authId));
    req_context.setSubject(remoteUser);

    // invoke service handler
    return wrapped.process(inProt, outProt);
}
 
开发者ID:kkllwww007,项目名称:jstrom,代码行数:23,代码来源:SaslTransportPlugin.java

示例2: process

import org.apache.thrift.transport.TSaslServerTransport; //导入方法依赖的package包/类
public boolean process(final TProtocol inProt, final TProtocol outProt) throws TException {
    //populating request context 
    ReqContext req_context = ReqContext.context();

    TTransport trans = inProt.getTransport();
    //Sasl transport
    TSaslServerTransport saslTrans = (TSaslServerTransport)trans;

    //remote address
    TSocket tsocket = (TSocket)saslTrans.getUnderlyingTransport();
    Socket socket = tsocket.getSocket();
    req_context.setRemoteAddress(socket.getInetAddress());

    //remote subject 
    SaslServer saslServer = saslTrans.getSaslServer();
    String authId = saslServer.getAuthorizationID();
    Subject remoteUser = new Subject();
    remoteUser.getPrincipals().add(new User(authId));
    req_context.setSubject(remoteUser);
    
    //invoke service handler
    return wrapped.process(inProt, outProt);
}
 
开发者ID:metamx,项目名称:incubator-storm,代码行数:24,代码来源:SaslTransportPlugin.java

示例3: process

import org.apache.thrift.transport.TSaslServerTransport; //导入方法依赖的package包/类
@Override
public boolean process(final TProtocol inProt, final TProtocol outProt) throws TException {
  TTransport trans = inProt.getTransport();
  if (!(trans instanceof TSaslServerTransport)) {
    throw new TException("Unexpected non-SASL transport " + trans.getClass());
  }
  TSaslServerTransport saslTrans = (TSaslServerTransport) trans;
  SaslServer saslServer = saslTrans.getSaslServer();
  String authId = saslServer.getAuthorizationID();
  String endUser = authId;

  UserGroupInformation clientUgi = null;
  try {
    clientUgi = UserGroupInformation.createProxyUser(endUser, UserGroupInformation.getLoginUser());
    final String remoteUser = clientUgi.getShortUserName();
    log.debug("Executing action as {}", remoteUser);
    return clientUgi.doAs(new PrivilegedExceptionAction<Boolean>() {
      @Override
      public Boolean run() {
        try {
          return wrapped.process(inProt, outProt);
        } catch (TException te) {
          throw new RuntimeException(te);
        }
      }
    });
  } catch (RuntimeException rte) {
    if (rte.getCause() instanceof TException) {
      log.error("Failed to invoke wrapped processor", rte.getCause());
      throw (TException) rte.getCause();
    }
    throw rte;
  } catch (InterruptedException | IOException e) {
    log.error("Failed to invoke wrapped processor", e);
    throw new RuntimeException(e);
  } finally {
    if (clientUgi != null) {
      try {
        FileSystem.closeAllForUGI(clientUgi);
      } catch (IOException exception) {
        log.error("Could not clean up file-system handles for UGI: {}", clientUgi, exception);
      }
    }
  }
}
 
开发者ID:joshelser,项目名称:krb-thrift,代码行数:46,代码来源:TUGIAssumingProcessor.java


注:本文中的org.apache.thrift.transport.TSaslServerTransport.getSaslServer方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。