• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java RpcSaslProto类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中org.apache.hadoop.ipc.protobuf.RpcHeaderProtos.RpcSaslProto的典型用法代码示例。如果您正苦于以下问题:Java RpcSaslProto类的具体用法?Java RpcSaslProto怎么用?Java RpcSaslProto使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



RpcSaslProto类属于org.apache.hadoop.ipc.protobuf.RpcHeaderProtos包,在下文中一共展示了RpcSaslProto类的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: saslReadAndProcess

import org.apache.hadoop.ipc.protobuf.RpcHeaderProtos.RpcSaslProto; //导入依赖的package包/类
private void saslReadAndProcess(DataInputStream dis) throws
WrappedRpcServerException, IOException, InterruptedException {
  final RpcSaslProto saslMessage =
      decodeProtobufFromStream(RpcSaslProto.newBuilder(), dis);
  switch (saslMessage.getState()) {
    case WRAP: {
      if (!saslContextEstablished || !useWrap) {
        throw new WrappedRpcServerException(
            RpcErrorCodeProto.FATAL_INVALID_RPC_HEADER,
            new SaslException("Server is not wrapping data"));
      }
      // loops over decoded data and calls processOneRpc
      unwrapPacketAndProcessRpcs(saslMessage.getToken().toByteArray());
      break;
    }
    default:
      saslProcess(saslMessage);
  }
}
 
开发者ID:nucypher,项目名称:hadoop-oss,代码行数:20,代码来源:Server.java


示例2: saslEvaluateToken

import org.apache.hadoop.ipc.protobuf.RpcHeaderProtos.RpcSaslProto; //导入依赖的package包/类
/**
 * Evaluate the server provided challenge.  The server must send a token
 * if it's not done.  If the server is done, the challenge token is
 * optional because not all mechanisms send a final token for the client to
 * update its internal state.  The client must also be done after
 * evaluating the optional token to ensure a malicious server doesn't
 * prematurely end the negotiation with a phony success.
 *  
 * @param saslResponse - client response to challenge
 * @param serverIsDone - server negotiation state
 * @throws SaslException - any problems with negotiation
 */
private byte[] saslEvaluateToken(RpcSaslProto saslResponse,
    boolean serverIsDone) throws SaslException {
  byte[] saslToken = null;
  if (saslResponse.hasToken()) {
    saslToken = saslResponse.getToken().toByteArray();
    saslToken = saslClient.evaluateChallenge(saslToken);
  } else if (!serverIsDone) {
    // the server may only omit a token when it's done
    throw new SaslException("Server challenge contains no token");
  }
  if (serverIsDone) {
    // server tried to report success before our client completed
    if (!saslClient.isComplete()) {
      throw new SaslException("Client is out of sync with server");
    }
    // a client cannot generate a response to a success message
    if (saslToken != null) {
      throw new SaslException("Client generated spurious response");        
    }
  }
  return saslToken;
}
 
开发者ID:nucypher,项目名称:hadoop-oss,代码行数:35,代码来源:SaslRpcClient.java


示例3: write

import org.apache.hadoop.ipc.protobuf.RpcHeaderProtos.RpcSaslProto; //导入依赖的package包/类
@Override
public void write(byte[] buf, int off, int len) throws IOException {
  if (LOG.isDebugEnabled()) {
    LOG.debug("wrapping token of length:" + len);
  }
  buf = saslClient.wrap(buf, off, len);
  RpcSaslProto saslMessage = RpcSaslProto.newBuilder()
      .setState(SaslState.WRAP)
      .setToken(ByteString.copyFrom(buf, 0, buf.length))
      .build();
  RpcRequestMessageWrapper request =
      new RpcRequestMessageWrapper(saslHeader, saslMessage);
  DataOutputStream dob = new DataOutputStream(out);
  dob.writeInt(request.getLength());
  request.write(dob);
 }
 
开发者ID:nucypher,项目名称:hadoop-oss,代码行数:17,代码来源:SaslRpcClient.java


示例4: buildSaslNegotiateResponse

import org.apache.hadoop.ipc.protobuf.RpcHeaderProtos.RpcSaslProto; //导入依赖的package包/类
/**
 * Process the Sasl's Negotiate request, including the optimization of 
 * accelerating token negotiation.
 * @return the response to Negotiate request - the list of enabled 
 *         authMethods and challenge if the TOKENS are supported. 
 * @throws SaslException - if attempt to generate challenge fails.
 * @throws IOException - if it fails to create the SASL server for Tokens
 */
private RpcSaslProto buildSaslNegotiateResponse()
    throws InterruptedException, SaslException, IOException {
  RpcSaslProto negotiateMessage = negotiateResponse;
  // accelerate token negotiation by sending initial challenge
  // in the negotiation response
  if (enabledAuthMethods.contains(AuthMethod.TOKEN)) {
    saslServer = createSaslServer(AuthMethod.TOKEN);
    byte[] challenge = saslServer.evaluateResponse(new byte[0]);
    RpcSaslProto.Builder negotiateBuilder =
        RpcSaslProto.newBuilder(negotiateResponse);
    negotiateBuilder.getAuthsBuilder(0)  // TOKEN is always first
        .setChallenge(ByteString.copyFrom(challenge));
    negotiateMessage = negotiateBuilder.build();
  }
  sentNegotiate = true;
  return negotiateMessage;
}
 
开发者ID:nucypher,项目名称:hadoop-oss,代码行数:26,代码来源:Server.java


示例5: buildNegotiateResponse

import org.apache.hadoop.ipc.protobuf.RpcHeaderProtos.RpcSaslProto; //导入依赖的package包/类
private RpcSaslProto buildNegotiateResponse(List<AuthMethod> authMethods)
    throws IOException {
  RpcSaslProto.Builder negotiateBuilder = RpcSaslProto.newBuilder();
  if (authMethods.contains(AuthMethod.SIMPLE) && authMethods.size() == 1) {
    // SIMPLE-only servers return success in response to negotiate
    negotiateBuilder.setState(SaslState.SUCCESS);
  } else {
    negotiateBuilder.setState(SaslState.NEGOTIATE);
    for (AuthMethod authMethod : authMethods) {
      SaslRpcServer saslRpcServer = new SaslRpcServer(authMethod);      
      SaslAuth.Builder builder = negotiateBuilder.addAuthsBuilder()
          .setMethod(authMethod.toString())
          .setMechanism(saslRpcServer.mechanism);
      if (saslRpcServer.protocol != null) {
        builder.setProtocol(saslRpcServer.protocol);
      }
      if (saslRpcServer.serverId != null) {
        builder.setServerId(saslRpcServer.serverId);
      }
    }
  }
  return negotiateBuilder.build();
}
 
开发者ID:nucypher,项目名称:hadoop-oss,代码行数:24,代码来源:Server.java


示例6: buildSaslNegotiateResponse

import org.apache.hadoop.ipc.protobuf.RpcHeaderProtos.RpcSaslProto; //导入依赖的package包/类
private RpcSaslProto buildSaslNegotiateResponse()
    throws IOException, InterruptedException {
  RpcSaslProto negotiateMessage = negotiateResponse;
  // accelerate token negotiation by sending initial challenge
  // in the negotiation response
  if (enabledAuthMethods.contains(AuthMethod.TOKEN)) {
    saslServer = createSaslServer(AuthMethod.TOKEN);
    byte[] challenge = saslServer.evaluateResponse(new byte[0]);
    RpcSaslProto.Builder negotiateBuilder =
        RpcSaslProto.newBuilder(negotiateResponse);
    negotiateBuilder.getAuthsBuilder(0)  // TOKEN is always first
        .setChallenge(ByteString.copyFrom(challenge));
    negotiateMessage = negotiateBuilder.build();
  }
  sentNegotiate = true;
  return negotiateMessage;
}
 
开发者ID:naver,项目名称:hadoop,代码行数:18,代码来源:Server.java


示例7: saslReadAndProcess

import org.apache.hadoop.ipc.protobuf.RpcHeaderProtos.RpcSaslProto; //导入依赖的package包/类
private void saslReadAndProcess(RpcWritable.Buffer buffer) throws
    RpcServerException, IOException, InterruptedException {
  final RpcSaslProto saslMessage =
      getMessage(RpcSaslProto.getDefaultInstance(), buffer);
  switch (saslMessage.getState()) {
    case WRAP: {
      if (!saslContextEstablished || !useWrap) {
        throw new FatalRpcServerException(
            RpcErrorCodeProto.FATAL_INVALID_RPC_HEADER,
            new SaslException("Server is not wrapping data"));
      }
      // loops over decoded data and calls processOneRpc
      unwrapPacketAndProcessRpcs(saslMessage.getToken().toByteArray());
      break;
    }
    default:
      saslProcess(saslMessage);
  }
}
 
开发者ID:hopshadoop,项目名称:hops,代码行数:20,代码来源:Server.java


示例8: wrapWithSasl

import org.apache.hadoop.ipc.protobuf.RpcHeaderProtos.RpcSaslProto; //导入依赖的package包/类
private void wrapWithSasl(RpcCall call) throws IOException {
  if (call.connection.saslServer != null) {
    byte[] token = call.rpcResponse.array();
    // synchronization may be needed since there can be multiple Handler
    // threads using saslServer to wrap responses.
    synchronized (call.connection.saslServer) {
      token = call.connection.saslServer.wrap(token, 0, token.length);
    }
    if (LOG.isDebugEnabled())
      LOG.debug("Adding saslServer wrapped token of size " + token.length
          + " as call response.");
    // rebuild with sasl header and payload
    RpcResponseHeaderProto saslHeader = RpcResponseHeaderProto.newBuilder()
        .setCallId(AuthProtocol.SASL.callId)
        .setStatus(RpcStatusProto.SUCCESS)
        .build();
    RpcSaslProto saslMessage = RpcSaslProto.newBuilder()
        .setState(SaslState.WRAP)
        .setToken(ByteString.copyFrom(token))
        .build();
    setupResponse(call, saslHeader, RpcWritable.wrap(saslMessage));
  }
}
 
开发者ID:hopshadoop,项目名称:hops,代码行数:24,代码来源:Server.java



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java FlowBuilderServices类代码示例发布时间:2022-05-22
下一篇:
Java AbstractMethodDeclaration类代码示例发布时间:2022-05-22
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap