Shiro集成Spring-创新互联

本篇文章给大家分享的是有关Shiro集成Spring,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

创新互联建站是一家专业提供兴宁企业网站建设,专注与成都网站设计、做网站、成都h5网站建设、小程序制作等业务。10年已为兴宁众多企业、政府机构等服务。创新互联专业网络公司优惠进行中。

开启注解配置

首先我们需要在 Spring Web 的配置文件 spring-web.xml 中加入以下内容来开启 Shiro 的注解支持 :

<aop:config proxy-target-class="true"/>
<bean class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor">
 <property name="securityManager" ref="securityManager"/>
</bean>

简单演示

接着我们就可以使用注解来配置权限:

@RestController
public class AuthorizationController {

 @RequestMapping("/role1")
 @RequiresRoles("user")
 public String role1() {
 return "success";
 }

 @RequestMapping("/role2")
 @RequiresRoles("admin")
 public String role2() {
 return "success2";
 }
}

访问 role1 方法需要当前用户有 user 角色,role2 方法需要 admin 角色。

当验证失败时,会抛出 UnauthorizedException ,我们可以使用 Spring 的 ExceptionHandler 来进行异常处理:

@ExceptionHandler(UnauthorizedException.class)
public String processUnauthorizedException(UnauthorizedException e) {
 return e.getMessage();
}

更多注解

当然不止有 @RequiresRoles 用来验证角色,Shiro 还提供了以下注解:

@RequiresAuthentication

验证用户是否登陆,等同于方法 subject.isAuthenticated() 

@RequiresUser

验证用户是否被 记忆,即登陆成功或 RememberMe 状态。等同于方法 : subject.isAuthenticated() subject.isRemembered()

@RequiresGuest

仅未登录状态可访问,与 @RequiresUser 完全相反。

@RequiresPermissions

验证是否具备权限,可通过参数 logical 来配置验证策略:

// 拥有 admin 或 user 角色即可
@RequiresPermissions(logical = Logical.OR,value = {"admin", "user"})
// 需同时具备 admin 与 user 角色
@RequiresPermissions(logical = Logical.AND,value = {"admin", "user"})

以上就是Shiro集成Spring,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注创新互联行业资讯频道。

文章题目:Shiro集成Spring-创新互联
网页网址:https://www.cdcxhl.com/article24/doidce.html

成都网站建设公司_创新互联,为您提供手机网站建设关键词优化品牌网站设计网站排名网站建设响应式网站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

网站优化排名