org.apache.shiro.subject.Subject.hasAllRoles()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(6.6k)|赞(0)|评价(0)|浏览(193)

本文整理了Java中org.apache.shiro.subject.Subject.hasAllRoles()方法的一些代码示例,展示了Subject.hasAllRoles()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Subject.hasAllRoles()方法的具体详情如下:
包路径:org.apache.shiro.subject.Subject
类名称:Subject
方法名:hasAllRoles

Subject.hasAllRoles介绍

[英]Returns true if this Subject has all of the specified roles, false otherwise.
[中]如果此主题具有所有指定角色,则返回true,否则返回false。

代码示例

代码示例来源:origin: apache/shiro

@SuppressWarnings({"unchecked"})
public boolean isAccessAllowed(ServletRequest request, ServletResponse response, Object mappedValue) throws IOException {
  Subject subject = getSubject(request, response);
  String[] rolesArray = (String[]) mappedValue;
  if (rolesArray == null || rolesArray.length == 0) {
    //no roles specified, so nothing to check - allow access.
    return true;
  }
  Set<String> roles = CollectionUtils.asSet(rolesArray);
  return subject.hasAllRoles(roles);
}

代码示例来源:origin: ocpsoft/rewrite

@Override
public boolean evaluate(Rewrite event, EvaluationContext context)
{
  return SecurityUtils.getSubject().hasAllRoles(roles);
}

代码示例来源:origin: org.seedstack.seed/seed-security-core

@Override
public boolean hasAllRoles(String... roleIdentifiers) {
  return SecurityUtils.getSubject().hasAllRoles(Arrays.asList(roleIdentifiers));
}

代码示例来源:origin: org.seedstack.seed/seed-security-core

private boolean hasAllRoles(String[] roles) {
  return SecurityUtils.getSubject().hasAllRoles(Arrays.asList(roles));
}

代码示例来源:origin: liolay/shiro-spring-boot-starter

public boolean isAccessAllowed(ServletRequest request, ServletResponse response, Object mappedValue) throws IOException {
  Subject subject = this.getSubject(request, response);
  String[] rolesArray = (String[]) mappedValue;
  if (rolesArray != null && rolesArray.length != 0) {
    Set<String> roles = CollectionUtils.asSet(rolesArray);
    return subject.hasAllRoles(roles);
  } else {
    return true;
  }
}

代码示例来源:origin: juzu/juzu

private boolean hasRoles(Request request, JSON config) {
 if (!SecurityUtils.getSubject().isAuthenticated()) {
  return false;
 }
 JSON foo = config.getJSON("roles");
 Logical logical = Logical.valueOf(foo.getString("logical"));
 List<String> roles = (List<String>)foo.get("value");
 if (roles.size() == 1) {
  return ShiroTools.hasRole(roles.get(0));
 } else if (roles.size() > 1) {
  switch (logical) {
   case AND :
    return SecurityUtils.getSubject().hasAllRoles(roles);
   case OR :
    return ShiroTools.hasRole(roles.toArray(new String[roles.size()]));
  }
 }
 return false;
}

代码示例来源:origin: apache/attic-polygene-java

private void handleRequiresRoles( Subject subject )
{
  if ( requiresRoles != null ) {
    LOGGER.debug( "SecurityConcern::RequiresRoles" );
    String roleId = requiresRoles.value();
    String[] roles = roleId.split( "," );
    if ( roles.length == 1 ) {
      if ( !subject.hasRole( roles[ 0] ) ) {
        String msg = "Calling Subject does not have required role [" + roleId + "].  "
               + "MethodInvocation denied.";
        throw new UnauthorizedException( msg );
      }
    } else {
      Set<String> rolesSet = new LinkedHashSet<String>( Arrays.asList( roles ) );
      if ( !subject.hasAllRoles( rolesSet ) ) {
        String msg = "Calling Subject does not have required roles [" + roleId + "].  "
               + "MethodInvocation denied.";
        throw new UnauthorizedException( msg );
      }
    }
  } else {
    LOGGER.debug( "SecurityConcern::RequiresRoles: not concerned" );
  }
}

代码示例来源:origin: org.apache.polygene.libraries/org.apache.polygene.library.shiro-core

private void handleRequiresRoles( Subject subject )
{
  if ( requiresRoles != null ) {
    LOGGER.debug( "SecurityConcern::RequiresRoles" );
    String roleId = requiresRoles.value();
    String[] roles = roleId.split( "," );
    if ( roles.length == 1 ) {
      if ( !subject.hasRole( roles[ 0] ) ) {
        String msg = "Calling Subject does not have required role [" + roleId + "].  "
               + "MethodInvocation denied.";
        throw new UnauthorizedException( msg );
      }
    } else {
      Set<String> rolesSet = new LinkedHashSet<String>( Arrays.asList( roles ) );
      if ( !subject.hasAllRoles( rolesSet ) ) {
        String msg = "Calling Subject does not have required roles [" + roleId + "].  "
               + "MethodInvocation denied.";
        throw new UnauthorizedException( msg );
      }
    }
  } else {
    LOGGER.debug( "SecurityConcern::RequiresRoles: not concerned" );
  }
}

代码示例来源:origin: yangfuhai/jboot

@Override
public void onRender(Env env, Scope scope, Writer writer) {
  if (getSubject() != null && ArrayUtils.isNotEmpty(exprList.getExprArray())) {
    List<String> roles = new ArrayList<String>();
    for (Expr expr : exprList.getExprArray())
      roles.add(expr.eval(scope).toString());
    if (getSubject().hasAllRoles(roles))
      renderBody(env, scope, writer);
  }
}

代码示例来源:origin: KrailOrg/krail

public boolean isAuthorised(Subject subject, MasterSitemap sitemap, MasterSitemapNode masterNode) {
  checkNotNull(masterNode, "node");
  checkNotNull(subject, "subject");
  //get reference early and keep it use provider directly - the sitemap instance could change
  String virtualPage = sitemap.navigationState(masterNode)
                .getVirtualPage();
  checkNotNull(virtualPage, "virtualPage");
  checkNotNull(masterNode.getPageAccessControl(), "node.getPageAccessControl(), " + masterNode.getUriSegment());
  log.debug("checking page access rights for {}", virtualPage);
  switch (masterNode.getPageAccessControl()) {
    case AUTHENTICATION:
      return subject.isAuthenticated();
    case GUEST:
      return (!subject.isAuthenticated()) && (!subject.isRemembered());
    case PERMISSION:
      return subject.isPermitted(new PagePermission(virtualPage));
    case PUBLIC:
      return true;
    case ROLES:
      return subject.hasAllRoles(masterNode.getRoles());
    case USER:
      return (subject.isAuthenticated()) || (subject.isRemembered());
  }
  return false;
}

代码示例来源:origin: uk.q3c.krail/krail

public boolean isAuthorised(Subject subject, MasterSitemap sitemap, MasterSitemapNode masterNode) {
  checkNotNull(masterNode, "node");
  checkNotNull(subject, "subject");
  //get reference early and keep it use provider directly - the sitemap instance could change
  String virtualPage = sitemap.navigationState(masterNode)
                .getVirtualPage();
  checkNotNull(virtualPage, "virtualPage");
  checkNotNull(masterNode.getPageAccessControl(), "node.getPageAccessControl(), " + masterNode.getUriSegment());
  log.debug("checking page access rights for {}", virtualPage);
  switch (masterNode.getPageAccessControl()) {
    case AUTHENTICATION:
      return subject.isAuthenticated();
    case GUEST:
      return (!subject.isAuthenticated()) && (!subject.isRemembered());
    case PERMISSION:
      return subject.isPermitted(new PagePermission(virtualPage));
    case PUBLIC:
      return true;
    case ROLES:
      return subject.hasAllRoles(masterNode.getRoles());
    case USER:
      return (subject.isAuthenticated()) || (subject.isRemembered());
  }
  return false;
}

代码示例来源:origin: xpoft/spring-vaadin

if (logical == Logical.AND && subject.hasAllRoles(Arrays.asList(roles)))

代码示例来源:origin: org.apache.camel/camel-shiro

authorized = currentUser.hasAllRoles(policy.getRolesList());
} else {
  for (String role : policy.getRolesList()) {

相关文章