本文整理了Java中org.apache.shiro.subject.Subject.checkRoles()
方法的一些代码示例,展示了Subject.checkRoles()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Subject.checkRoles()
方法的具体详情如下:
包路径:org.apache.shiro.subject.Subject
类名称:Subject
方法名:checkRoles
[英]Asserts this Subject has all of the specified roles by returning quietly if they do or throwing an org.apache.shiro.authz.AuthorizationException if they do not.
[中]断言此主题拥有所有指定的角色,如果有,则悄悄返回或抛出一个组织。阿帕奇。西罗。奥兹。授权例外,如果他们没有。
代码示例来源:origin: apache/shiro
/**
* Ensures that the calling <code>Subject</code> has the Annotation's specified roles, and if not, throws an
* <code>AuthorizingException</code> indicating that access is denied.
*
* @param a the RequiresRoles annotation to use to check for one or more roles
* @throws org.apache.shiro.authz.AuthorizationException
* if the calling <code>Subject</code> does not have the role(s) necessary to
* proceed.
*/
public void assertAuthorized(Annotation a) throws AuthorizationException {
if (!(a instanceof RequiresRoles)) return;
RequiresRoles rrAnnotation = (RequiresRoles) a;
String[] roles = rrAnnotation.value();
if (roles.length == 1) {
getSubject().checkRole(roles[0]);
return;
}
if (Logical.AND.equals(rrAnnotation.logical())) {
getSubject().checkRoles(Arrays.asList(roles));
return;
}
if (Logical.OR.equals(rrAnnotation.logical())) {
// Avoid processing exceptions unnecessarily - "delay" throwing the exception by calling hasRole first
boolean hasAtLeastOneRole = false;
for (String role : roles) if (getSubject().hasRole(role)) hasAtLeastOneRole = true;
// Cause the exception if none of the role match, note that the exception message will be a bit misleading
if (!hasAtLeastOneRole) getSubject().checkRole(roles[0]);
}
}
代码示例来源:origin: org.apache.shiro/shiro-core
/**
* Ensures that the calling <code>Subject</code> has the Annotation's specified roles, and if not, throws an
* <code>AuthorizingException</code> indicating that access is denied.
*
* @param a the RequiresRoles annotation to use to check for one or more roles
* @throws org.apache.shiro.authz.AuthorizationException
* if the calling <code>Subject</code> does not have the role(s) necessary to
* proceed.
*/
public void assertAuthorized(Annotation a) throws AuthorizationException {
if (!(a instanceof RequiresRoles)) return;
RequiresRoles rrAnnotation = (RequiresRoles) a;
String[] roles = rrAnnotation.value();
if (roles.length == 1) {
getSubject().checkRole(roles[0]);
return;
}
if (Logical.AND.equals(rrAnnotation.logical())) {
getSubject().checkRoles(Arrays.asList(roles));
return;
}
if (Logical.OR.equals(rrAnnotation.logical())) {
// Avoid processing exceptions unnecessarily - "delay" throwing the exception by calling hasRole first
boolean hasAtLeastOneRole = false;
for (String role : roles) if (getSubject().hasRole(role)) hasAtLeastOneRole = true;
// Cause the exception if none of the role match, note that the exception message will be a bit misleading
if (!hasAtLeastOneRole) getSubject().checkRole(roles[0]);
}
}
代码示例来源:origin: org.seedstack.seed/seed-security-core
@Override
public void checkRoles(String... roleIdentifiers) {
try {
SecurityUtils.getSubject().checkRoles(roleIdentifiers);
} catch (org.apache.shiro.authz.AuthorizationException e) {
throw new AuthorizationException("Subject doesn't have roles " + Arrays.toString(roleIdentifiers), e);
}
}
代码示例来源:origin: cn.jeeweb/jeeweb-common-security
@Override
public void assertAuthorized(Annotation a) throws AuthorizationException {
RolesAllowed rrAnnotation = (RolesAllowed) a;
String[] roles = rrAnnotation.value();
getSubject().checkRoles(Arrays.asList(roles));
return;
}
代码示例来源:origin: huangjian888/jeeweb-mybatis-springboot
@Override
public void assertAuthorized(Annotation a) throws AuthorizationException {
RolesAllowed rrAnnotation = (RolesAllowed) a;
String[] roles = rrAnnotation.value();
getSubject().checkRoles(Arrays.asList(roles));
return;
}
代码示例来源:origin: be.c4j.ee.security.octopus/octopus-core
@Override
public SecurityCheckInfo performCheck(Subject subject, AccessDecisionVoterContext accessContext, Annotation securityAnnotation) {
SecurityCheckInfo result;
RequiresRoles requiresRoles = (RequiresRoles) securityAnnotation;
String[] roles = requiresRoles.value();
try {
subject.checkRoles(roles);
result = SecurityCheckInfo.allowAccess();
} catch (AuthorizationException ae) {
result = SecurityCheckInfo.withException(
new OctopusUnauthorizedException("Shiro Roles required", infoProducer.getViolationInfo(accessContext))
);
}
return result;
}
代码示例来源:origin: yangfuhai/jboot
@Override
public AuthorizeResult authorize() {
String[] roles = requiresRoles.value();
try {
if (roles.length == 1) {
SecurityUtils.getSubject().checkRole(roles[0]);
return AuthorizeResult.ok();
}
if (Logical.AND.equals(requiresRoles.logical())) {
SecurityUtils.getSubject().checkRoles(Arrays.asList(roles));
return AuthorizeResult.ok();
}
if (Logical.OR.equals(requiresRoles.logical())) {
// Avoid processing exceptions unnecessarily - "delay" throwing the exception by calling hasRole first
boolean hasAtLeastOneRole = false;
for (String role : roles) if (SecurityUtils.getSubject().hasRole(role)) hasAtLeastOneRole = true;
// Cause the exception if none of the role match, note that the exception message will be a bit misleading
if (!hasAtLeastOneRole) SecurityUtils.getSubject().checkRole(roles[0]);
}
return AuthorizeResult.ok();
} catch (AuthorizationException e) {
return AuthorizeResult.fail(AuthorizeResult.ERROR_CODE_UNAUTHORIZATION);
}
}
}
代码示例来源:origin: cn.dreampie/jfinal-shiro
@Override
public void assertAuthorized() throws AuthorizationException {
Subject subject = getSubject();
if (!(annotation instanceof RequiresRoles)) return;
RequiresRoles rrAnnotation = (RequiresRoles) annotation;
String[] roles = rrAnnotation.value();
if (roles.length == 1) {
subject.checkRole(roles[0]);
return;
}
if (Logical.AND.equals(rrAnnotation.logical())) {
subject.checkRoles(Arrays.asList(roles));
return;
}
if (Logical.OR.equals(rrAnnotation.logical())) {
// Avoid processing exceptions unnecessarily - "delay" throwing the exception by calling hasRole first
boolean hasAtLeastOneRole = false;
for (String role : roles) if (subject.hasRole(role)) hasAtLeastOneRole = true;
// Cause the exception if none of the role match, note that the exception message will be a bit misleading
if (!hasAtLeastOneRole) subject.checkRole(roles[0]);
}
}
}
代码示例来源:origin: Dreampie/jfinal-shiro
@Override
public void assertAuthorized() throws AuthorizationException {
Subject subject = getSubject();
if (!(annotation instanceof RequiresRoles)) return;
RequiresRoles rrAnnotation = (RequiresRoles) annotation;
String[] roles = rrAnnotation.value();
if (roles.length == 1) {
subject.checkRole(roles[0]);
return;
}
if (Logical.AND.equals(rrAnnotation.logical())) {
subject.checkRoles(Arrays.asList(roles));
return;
}
if (Logical.OR.equals(rrAnnotation.logical())) {
// Avoid processing exceptions unnecessarily - "delay" throwing the exception by calling hasRole first
boolean hasAtLeastOneRole = false;
for (String role : roles) if (subject.hasRole(role)) hasAtLeastOneRole = true;
// Cause the exception if none of the role match, note that the exception message will be a bit misleading
if (!hasAtLeastOneRole) subject.checkRole(roles[0]);
}
}
}
代码示例来源:origin: uk.q3c.krail/krail
getSubject().checkRoles(Arrays.asList(roles));
return;
代码示例来源:origin: com.github.sogyf/goja-mvt
@Override
public void assertAuthorized() throws AuthorizationException {
//if (!(annotation instanceof RequiresRoles)) return;
RequiresRoles rrAnnotation = (RequiresRoles) annotation;
String[] roles = rrAnnotation.value();
if (roles.length == 1) {
getSubject().checkRole(roles[0]);
return;
}
if (Logical.AND.equals(rrAnnotation.logical())) {
getSubject().checkRoles(Arrays.asList(roles));
return;
}
if (Logical.OR.equals(rrAnnotation.logical())) {
// Avoid processing exceptions unnecessarily - "delay" throwing the exception by calling hasRole first
boolean hasAtLeastOneRole = false;
for (String role : roles) if (getSubject().hasRole(role)) hasAtLeastOneRole = true;
// Cause the exception if none of the role match, note that the exception message will be a bit misleading
if (!hasAtLeastOneRole) getSubject().checkRole(roles[0]);
}
}
}
代码示例来源:origin: KrailOrg/krail
getSubject().checkRoles(Arrays.asList(roles));
return;
代码示例来源:origin: org.apache.servicemix.bundles/org.apache.servicemix.bundles.shiro
/**
* Ensures that the calling <code>Subject</code> has the Annotation's specified roles, and if not, throws an
* <code>AuthorizingException</code> indicating that access is denied.
*
* @param a the RequiresRoles annotation to use to check for one or more roles
* @throws org.apache.shiro.authz.AuthorizationException
* if the calling <code>Subject</code> does not have the role(s) necessary to
* proceed.
*/
public void assertAuthorized(Annotation a) throws AuthorizationException {
if (!(a instanceof RequiresRoles)) return;
RequiresRoles rrAnnotation = (RequiresRoles) a;
String[] roles = rrAnnotation.value();
if (roles.length == 1) {
getSubject().checkRole(roles[0]);
return;
}
if (Logical.AND.equals(rrAnnotation.logical())) {
getSubject().checkRoles(Arrays.asList(roles));
return;
}
if (Logical.OR.equals(rrAnnotation.logical())) {
// Avoid processing exceptions unnecessarily - "delay" throwing the exception by calling hasRole first
boolean hasAtLeastOneRole = false;
for (String role : roles) if (getSubject().hasRole(role)) hasAtLeastOneRole = true;
// Cause the exception if none of the role match, note that the exception message will be a bit misleading
if (!hasAtLeastOneRole) getSubject().checkRole(roles[0]);
}
}
内容来源于网络,如有侵权,请联系作者删除!