當前位置: 首頁>>代碼示例>>Java>>正文


Java Token.decodeFromUrlString方法代碼示例

本文整理匯總了Java中org.apache.hadoop.security.token.Token.decodeFromUrlString方法的典型用法代碼示例。如果您正苦於以下問題:Java Token.decodeFromUrlString方法的具體用法?Java Token.decodeFromUrlString怎麽用?Java Token.decodeFromUrlString使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在org.apache.hadoop.security.token.Token的用法示例。


在下文中一共展示了Token.decodeFromUrlString方法的8個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: assertTokenCancelled

import org.apache.hadoop.security.token.Token; //導入方法依賴的package包/類
private void assertTokenCancelled(String encodedToken) throws Exception {
  Token<RMDelegationTokenIdentifier> realToken =
      new Token<RMDelegationTokenIdentifier>();
  realToken.decodeFromUrlString(encodedToken);
  RMDelegationTokenIdentifier ident = rm.getRMContext()
    .getRMDelegationTokenSecretManager().decodeTokenIdentifier(realToken);
  boolean exceptionCaught = false;
  try {
    rm.getRMContext().getRMDelegationTokenSecretManager()
      .verifyToken(ident, realToken.getPassword());
  } catch (InvalidToken it) {
    exceptionCaught = true;
  }
  assertTrue("InvalidToken exception not thrown", exceptionCaught);
  assertFalse(rm.getRMContext().getRMDelegationTokenSecretManager()
    .getAllTokens().containsKey(ident));
}
 
開發者ID:naver,項目名稱:hadoop,代碼行數:18,代碼來源:TestRMWebServicesDelegationTokens.java

示例2: extractToken

import org.apache.hadoop.security.token.Token; //導入方法依賴的package包/類
private Token<RMDelegationTokenIdentifier> extractToken(String encodedToken) {
  Token<RMDelegationTokenIdentifier> token =
      new Token<RMDelegationTokenIdentifier>();
  try {
    token.decodeFromUrlString(encodedToken);
  } catch (Exception ie) {
    String msg = "Could not decode encoded token";
    throw new BadRequestException(msg);
  }
  return token;
}
 
開發者ID:naver,項目名稱:hadoop,代碼行數:12,代碼來源:RMWebServices.java

示例3: assertValidRMToken

import org.apache.hadoop.security.token.Token; //導入方法依賴的package包/類
private void assertValidRMToken(String encodedToken) throws IOException {
  Token<RMDelegationTokenIdentifier> realToken =
      new Token<RMDelegationTokenIdentifier>();
  realToken.decodeFromUrlString(encodedToken);
  RMDelegationTokenIdentifier ident = rm.getRMContext()
    .getRMDelegationTokenSecretManager().decodeTokenIdentifier(realToken);
  rm.getRMContext().getRMDelegationTokenSecretManager()
    .verifyToken(ident, realToken.getPassword());
  assertTrue(rm.getRMContext().getRMDelegationTokenSecretManager()
    .getAllTokens().containsKey(ident));
}
 
開發者ID:naver,項目名稱:hadoop,代碼行數:12,代碼來源:TestRMWebServicesDelegationTokens.java

示例4: toToken

import org.apache.hadoop.security.token.Token; //導入方法依賴的package包/類
/** Convert a Json map to a Token. */
public static Token<? extends TokenIdentifier> toToken(
    final Map<?, ?> m) throws IOException {
  if (m == null) {
    return null;
  }

  final Token<DelegationTokenIdentifier> token
      = new Token<DelegationTokenIdentifier>();
  token.decodeFromUrlString((String)m.get("urlString"));
  return token;
}
 
開發者ID:naver,項目名稱:hadoop,代碼行數:13,代碼來源:JsonUtil.java

示例5: doGet

import org.apache.hadoop.security.token.Token; //導入方法依賴的package包/類
@Override
protected void doGet(final HttpServletRequest req, final HttpServletResponse resp)
    throws ServletException, IOException {
  final UserGroupInformation ugi;
  final ServletContext context = getServletContext();
  final Configuration conf = NameNodeHttpServer.getConfFromContext(context);
  try {
    ugi = getUGI(req, conf);
  } catch(IOException ioe) {
    LOG.info("Request for token received with no authentication from "
        + req.getRemoteAddr(), ioe);
    resp.sendError(HttpServletResponse.SC_FORBIDDEN, 
        "Unable to identify or authenticate user");
    return;
  }
  final NameNode nn = NameNodeHttpServer.getNameNodeFromContext(
      context);
  String tokenString = req.getParameter(TOKEN);
  if (tokenString == null) {
    resp.sendError(HttpServletResponse.SC_MULTIPLE_CHOICES,
                   "Token to renew not specified");
  }
  final Token<DelegationTokenIdentifier> token = 
    new Token<DelegationTokenIdentifier>();
  token.decodeFromUrlString(tokenString);
  
  try {
    ugi.doAs(new PrivilegedExceptionAction<Void>() {
      @Override
      public Void run() throws Exception {
        nn.getRpcServer().cancelDelegationToken(token);
        return null;
      }
    });
  } catch(Exception e) {
    LOG.info("Exception while cancelling token. Re-throwing. ", e);
    resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR,
                   e.getMessage());
  }
}
 
開發者ID:naver,項目名稱:hadoop,代碼行數:41,代碼來源:CancelDelegationTokenServlet.java

示例6: delegationToken

import org.apache.hadoop.security.token.Token; //導入方法依賴的package包/類
Token<DelegationTokenIdentifier> delegationToken() throws IOException {
  String delegation = param(DelegationParam.NAME);
  final Token<DelegationTokenIdentifier> token = new
    Token<DelegationTokenIdentifier>();
  token.decodeFromUrlString(delegation);
  URI nnUri = URI.create(HDFS_URI_SCHEME + "://" + namenodeId());
  boolean isLogical = HAUtil.isLogicalUri(conf, nnUri);
  if (isLogical) {
    token.setService(HAUtil.buildTokenServiceForLogicalUri(nnUri,
      HDFS_URI_SCHEME));
  } else {
    token.setService(SecurityUtil.buildTokenService(nnUri));
  }
  return token;
}
 
開發者ID:naver,項目名稱:hadoop,代碼行數:16,代碼來源:ParameterParser.java

示例7: getTokenUGI

import org.apache.hadoop.security.token.Token; //導入方法依賴的package包/類
private static UserGroupInformation getTokenUGI(ServletContext context,
                                                HttpServletRequest request,
                                                String tokenString,
                                                Configuration conf)
                                                    throws IOException {
  final Token<DelegationTokenIdentifier> token =
      new Token<DelegationTokenIdentifier>();
  token.decodeFromUrlString(tokenString);
  InetSocketAddress serviceAddress = getNNServiceAddress(context, request);
  if (serviceAddress != null) {
    SecurityUtil.setTokenService(token, serviceAddress);
    token.setKind(DelegationTokenIdentifier.HDFS_DELEGATION_KIND);
  }

  ByteArrayInputStream buf =
      new ByteArrayInputStream(token.getIdentifier());
  DataInputStream in = new DataInputStream(buf);
  DelegationTokenIdentifier id = new DelegationTokenIdentifier();
  id.readFields(in);
  if (context != null) {
    final NameNode nn = NameNodeHttpServer.getNameNodeFromContext(context);
    if (nn != null) {
      // Verify the token.
      nn.getNamesystem().verifyToken(id, token.getPassword());
    }
  }
  UserGroupInformation ugi = id.getUser();
  ugi.addToken(token);
  return ugi;
}
 
開發者ID:naver,項目名稱:hadoop,代碼行數:31,代碼來源:JspHelper.java

示例8: doGet

import org.apache.hadoop.security.token.Token; //導入方法依賴的package包/類
@Override
protected void doGet(final HttpServletRequest req, final HttpServletResponse resp)
    throws ServletException, IOException {
  final UserGroupInformation ugi;
  final ServletContext context = getServletContext();
  final Configuration conf = NameNodeHttpServer.getConfFromContext(context);
  try {
    ugi = getUGI(req, conf);
  } catch(IOException ioe) {
    LOG.info("Request for token received with no authentication from "
        + req.getRemoteAddr(), ioe);
    resp.sendError(HttpServletResponse.SC_FORBIDDEN, 
        "Unable to identify or authenticate user");
    return;
  }
  final NameNode nn = NameNodeHttpServer.getNameNodeFromContext(context);
  String tokenString = req.getParameter(TOKEN);
  if (tokenString == null) {
    resp.sendError(HttpServletResponse.SC_MULTIPLE_CHOICES,
                   "Token to renew not specified");
  }
  final Token<DelegationTokenIdentifier> token = 
    new Token<DelegationTokenIdentifier>();
  token.decodeFromUrlString(tokenString);
  
  try {
    long result = ugi.doAs(new PrivilegedExceptionAction<Long>() {
      @Override
      public Long run() throws Exception {
        return nn.getRpcServer().renewDelegationToken(token);
      }
    });
    final PrintWriter os = new PrintWriter(new OutputStreamWriter(
        resp.getOutputStream(), Charsets.UTF_8));
    os.println(result);
    os.close();
  } catch(Exception e) {
    // transfer exception over the http
    String exceptionClass = e.getClass().getName();
    String exceptionMsg = e.getLocalizedMessage();
    String strException = exceptionClass + ";" + exceptionMsg;
    LOG.info("Exception while renewing token. Re-throwing. s=" + strException, e);
    resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, strException);
  }
}
 
開發者ID:naver,項目名稱:hadoop,代碼行數:46,代碼來源:RenewDelegationTokenServlet.java


注:本文中的org.apache.hadoop.security.token.Token.decodeFromUrlString方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。