本篇文章给大家分享的是有关Shiro集成Spring,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
开启注解配置
首先我们需要在 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,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。