首页 > 编程语言 > 详细

Spring与Shiro整合 静态注解授权

时间:2019-12-07 19:20:40      阅读:97      评论:0      收藏:0      [点我收藏+]

Spring与Shiro整合 静态注解授权

作者 : Stanley 罗昊

【转载请注明出处和署名,谢谢!】

使用Shiro的种类

首先,Shiro的授权方式共有三种;

1.编程式授权(不推荐)

技术分享图片

2.注解式授权(普遍使用【力荐】)

技术分享图片

注:第一个始于基于角色控制权限,就是你这个用户拥有那些权限;

       第二个基于权限控制,判断你这个角色是否拥有这项权限,如果有给放行,如果没有被拦截;这个一般是判断数据库User表中会有一个权限列;

3.Jsp式授权(一般前端UI有对应解决方案)

注:jsp标签方式只是表面上不将此功能显示,但是如果有恶意用户绕过,直接输入ip地址+接口名称即可访问,所以必须配合后端一起使用;

技术分享图片

了解授权(注解方式)

首先,我们在jsp页面上编写几个a标签:

技术分享图片

 

 

 我们看到了分别有增、改、删,这也就对应我们后台控制器(Conteoller)中mapping内的Url拦截地址:

技术分享图片

 

 

 我们现在开始将以上操作纳入Shiro管理;这一步,仅仅就是让这些Url纳入并被Shiro管理在Conteoller中声明;,

将Url交给Shiro管理

纳入很简单,只需要在这个接口上加上注解即可:

技术分享图片

注:第一个始于基于角色控制权限,就是你这个用户拥有那些权限;

       第二个基于权限控制,判断你这个角色是否拥有这项权限,如果有给放行,如果没有被拦截;这个一般是判断数据库User表中会有一个权限列【推荐】;

所以我们会用第二种,直接在用户请求这个接口之前,判断这个注解中的表达式,如果你有save那你就进来,如果没有,你就被拦截;

具体写法:

技术分享图片

 

 解析:其中,employee可以写成Controller的前缀名称:

技术分享图片

Spring-Shiro.xml文件中配置

编写完注解后,我们依然需要将配置文件中加入一段代码:

技术分享图片

 

 1.开启Aop对类代理

我们可以看察觉到,我们的注解是不是都贴在Controller类内的方法上,在这个方法中,我们不需要注入或引入任何接口,原因就是我们需要在xml文件中配置,也可以这样理解,我们把需要引入的Jar包以及继承的接口都放入xml文件中;

2.开启Shiro注解支持

我们这个注解,我们贴上去并让它起到作用(权限控制)的话,就需要再此配置,详细说就是,第三方程序的依赖,Spirng本身没有,所以我们需要依赖第三方程序从而实现权限的控制;

注意:其中,上面的securityManager就是配置安全管理器的SecurityManager(同在Spring-Shiro.xml文件中):

技术分享图片

 

 

Spring与Shiro整合 静态注解授权

原文:https://www.cnblogs.com/StanleyBlogs/p/11978947.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!