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


Java AccessControlList.isUserAllowed方法代码示例

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


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

示例1: checkPermission

import org.apache.hadoop.security.authorize.AccessControlList; //导入方法依赖的package包/类
@Override
public boolean checkPermission(AccessType accessType,
    PrivilegedEntity target, UserGroupInformation user) {
  boolean ret = false;
  Map<AccessType, AccessControlList> acls = allAcls.get(target);
  if (acls != null) {
    AccessControlList list = acls.get(accessType);
    if (list != null) {
      ret = list.isUserAllowed(user);
    }
  }

  // recursively look up the queue to see if parent queue has the permission.
  if (target.getType() == EntityType.QUEUE && !ret) {
    String queueName = target.getName();
    if (!queueName.contains(".")) {
      return ret;
    }
    String parentQueueName = queueName.substring(0, queueName.lastIndexOf("."));
    return checkPermission(accessType, new PrivilegedEntity(target.getType(),
      parentQueueName), user);
  }
  return ret;
}
 
开发者ID:naver,项目名称:hadoop,代码行数:25,代码来源:ConfiguredYarnAuthorizer.java

示例2: checkAccess

import org.apache.hadoop.security.authorize.AccessControlList; //导入方法依赖的package包/类
/**
 * If authorization is enabled, checks whether the user (in the callerUGI)
 * is authorized to perform the operation specified by 'jobOperation' on
 * the job by checking if the user is jobOwner or part of job ACL for the
 * specific job operation.
 * <ul>
 * <li>The owner of the job can do any operation on the job</li>
 * <li>For all other users/groups job-acls are checked</li>
 * </ul>
 * @param callerUGI
 * @param jobOperation
 * @param jobOwner
 * @param jobACL
 */
public boolean checkAccess(UserGroupInformation callerUGI,
    JobACL jobOperation, String jobOwner, AccessControlList jobACL) {

  if (LOG.isDebugEnabled()) {
    LOG.debug("checkAccess job acls, jobOwner: " + jobOwner + " jobacl: "
        + jobOperation.toString() + " user: " + callerUGI.getShortUserName());
  }
  String user = callerUGI.getShortUserName();
  if (!areACLsEnabled()) {
    return true;
  }

  // Allow Job-owner for any operation on the job
  if (isMRAdmin(callerUGI)
      || user.equals(jobOwner)
      || jobACL.isUserAllowed(callerUGI)) {
    return true;
  }

  return false;
}
 
开发者ID:naver,项目名称:hadoop,代码行数:36,代码来源:JobACLsManager.java

示例3: checkKeyAccess

import org.apache.hadoop.security.authorize.AccessControlList; //导入方法依赖的package包/类
private boolean checkKeyAccess(Map<KeyOpType, AccessControlList> keyAcl,
    UserGroupInformation ugi, KeyOpType opType) {
  AccessControlList acl = keyAcl.get(opType);
  if (acl == null) {
    // If no acl is specified for this operation,
    // deny access
    return false;
  } else {
    return acl.isUserAllowed(ugi);
  }
}
 
开发者ID:nucypher,项目名称:hadoop-oss,代码行数:12,代码来源:KMSACLs.java

示例4: hasAccess

import org.apache.hadoop.security.authorize.AccessControlList; //导入方法依赖的package包/类
/**
 * Return true if the given user is part of the ACL for the given
 * {@link QueueACL} name for the given queue.
 * <p>
 * An operation is allowed if all users are provided access for this
 * operation, or if either the user or any of the groups specified is
 * provided access.
 *
 * @param queueName Queue on which the operation needs to be performed.
 * @param qACL      The queue ACL name to be checked
 * @param ugi       The user and groups who wish to perform the operation.
 * @return true     if the operation is allowed, false otherwise.
 */
public synchronized boolean hasAccess(
  String queueName, QueueACL qACL, UserGroupInformation ugi) {

  Queue q = leafQueues.get(queueName);

  if (q == null) {
    LOG.info("Queue " + queueName + " is not present");
    return false;
  }

  if(q.getChildren() != null && !q.getChildren().isEmpty()) {
    LOG.info("Cannot submit job to parent queue " + q.getName());
    return false;
  }

  if (!areAclsEnabled()) {
    return true;
  }

  if (LOG.isDebugEnabled()) {
    LOG.debug("Checking access for the acl " + toFullPropertyName(queueName,
      qACL.getAclName()) + " for user " + ugi.getShortUserName());
  }

  AccessControlList acl = q.getAcls().get(
      toFullPropertyName(queueName, qACL.getAclName()));
  if (acl == null) {
    return false;
  }

  // Check if user is part of the ACL
  return acl.isUserAllowed(ugi);
}
 
开发者ID:naver,项目名称:hadoop,代码行数:47,代码来源:QueueManager.java

示例5: checkAccess

import org.apache.hadoop.security.authorize.AccessControlList; //导入方法依赖的package包/类
/**
 * If authorization is enabled, checks whether the user (in the callerUGI) is
 * authorized to perform the access specified by 'applicationAccessType' on
 * the application by checking if the user is applicationOwner or part of
 * application ACL for the specific access-type.
 * <ul>
 * <li>The owner of the application can have all access-types on the
 * application</li>
 * <li>For all other users/groups application-acls are checked</li>
 * </ul>
 * 
 * @param callerUGI
 * @param applicationAccessType
 * @param applicationOwner
 * @param applicationId
 */
public boolean checkAccess(UserGroupInformation callerUGI,
    ApplicationAccessType applicationAccessType, String applicationOwner,
    ApplicationId applicationId) {

  if (LOG.isDebugEnabled()) {
    LOG.debug("Verifying access-type " + applicationAccessType + " for "
        + callerUGI + " on application " + applicationId + " owned by "
        + applicationOwner);
  }

  String user = callerUGI.getShortUserName();
  if (!areACLsEnabled()) {
    return true;
  }
  AccessControlList applicationACL = DEFAULT_YARN_APP_ACL;
  Map<ApplicationAccessType, AccessControlList> acls = this.applicationACLS
      .get(applicationId);
  if (acls == null) {
    if (LOG.isDebugEnabled()) {
      LOG.debug("ACL not found for application "
          + applicationId + " owned by "
          + applicationOwner + ". Using default ["
          + YarnConfiguration.DEFAULT_YARN_APP_ACL + "]");
    }
  } else {
    AccessControlList applicationACLInMap = acls.get(applicationAccessType);
    if (applicationACLInMap != null) {
      applicationACL = applicationACLInMap;
    } else if (LOG.isDebugEnabled()) {
      LOG.debug("ACL not found for access-type " + applicationAccessType
          + " for application " + applicationId + " owned by "
          + applicationOwner + ". Using default ["
          + YarnConfiguration.DEFAULT_YARN_APP_ACL + "]");
    }
  }

  // Allow application-owner for any type of access on the application
  if (this.adminAclsManager.isAdmin(callerUGI)
      || user.equals(applicationOwner)
      || applicationACL.isUserAllowed(callerUGI)) {
    return true;
  }
  return false;
}
 
开发者ID:naver,项目名称:hadoop,代码行数:61,代码来源:ApplicationACLsManager.java

示例6: userHasAdministratorAccess

import org.apache.hadoop.security.authorize.AccessControlList; //导入方法依赖的package包/类
/**
 * Get the admin ACLs from the given ServletContext and check if the given
 * user is in the ACL.
 *
 * @param servletContext the context containing the admin ACL.
 * @param remoteUser the remote user to check for.
 * @return true if the user is present in the ACL, false if no ACL is set or
 *         the user is not present
 */
public static boolean userHasAdministratorAccess(ServletContext servletContext,
    String remoteUser) {
  AccessControlList adminsAcl = (AccessControlList) servletContext
      .getAttribute(ADMINS_ACL);
  UserGroupInformation remoteUserUGI =
      UserGroupInformation.createRemoteUser(remoteUser);
  return adminsAcl != null && adminsAcl.isUserAllowed(remoteUserUGI);
}
 
开发者ID:nucypher,项目名称:hadoop-oss,代码行数:18,代码来源:HttpServer2.java

示例7: userHasAdministratorAccess

import org.apache.hadoop.security.authorize.AccessControlList; //导入方法依赖的package包/类
/**
 * Get the admin ACLs from the given ServletContext and check if the given
 * user is in the ACL.
 * 
 * @param servletContext the context containing the admin ACL.
 * @param remoteUser the remote user to check for.
 * @return true if the user is present in the ACL, false if no ACL is set or
 *         the user is not present
 */
public static boolean userHasAdministratorAccess(ServletContext servletContext,
    String remoteUser) {
  AccessControlList adminsAcl = (AccessControlList) servletContext
      .getAttribute(ADMINS_ACL);
  UserGroupInformation remoteUserUGI =
      UserGroupInformation.createRemoteUser(remoteUser);
  return adminsAcl != null && adminsAcl.isUserAllowed(remoteUserUGI);
}
 
开发者ID:naver,项目名称:hadoop,代码行数:18,代码来源:HttpServer.java


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