博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Shiro授权流程
阅读量:4606 次
发布时间:2019-06-09

本文共 1485 字,大约阅读时间需要 4 分钟。

1,授权中涉及的一些概念
     [1]授权:访问控制,即在应用中认证用户能否访问的系统资源(如一个页面,一个按钮等)。
     [2]资源:在Web应用中反应为用户可以访问的URL。
     [3]权限:表示用户在应用中是否能够访问某个资源。
     [4]角色:权限的集合。
 
2,Shiro授权方式
     [1]编程式
     [2]注解式
     [3]jsp/gsp标签式
 
3,Shiro默认拦截器
     Shiro内置了很多默认的拦截器,比如身份验证,授权等相关的。默认拦截器可以参考org.apache.web.filter.mgt.DefaultFilter中的枚举拦截器。
 
 
4,Shiro授权流程
     [1]授权需要继承 AuthorizingRealm 类(该类继承自 AuthenticationRealm 类),并重写其 doGetAuthorizationInfo() 方法。
  

  

 

         
     
     [2]多Realm授权的通过标准,多Realm应用下,使用ModularRealmAuthorizer授权器,只要有一个Realm授权就算通过。在ModularRealmAuthorizer循环授权的时候,还是走的第[1]条的流程,所以不用担心。
  

 

############################### Shiro jsp标签库 ##########################################
Shiro 提供了JSTL标签用于在JSP/GSP页面进行权限控制,如根据认证用户相应的页面按钮。
首先,需要导入标签库:
<%@ taglib uri="http://org.apache.shiro/tags" uri="shiro" %>
 
1,guest标签
     游客登陆时,显示标签体内的内容。
2,authenticated标签
     用户认证通过,显示标签体内的内容。
3,noAuthenticated标签
     用户未通过认证(包括【记住我】方式登陆),显示标签体内的内容。
4,principal标签
     显示用户身份信息,如果realm传递的principal是一个对象,可以使用该标签的property来显示具体属性的值。
5,hasRole和hasAnyRoles
     拥有指定的角色,显示标签体内的内容。
6,lacksRole
     没有指定的角色,显示标签体内的内容。
7,hasPermissioin和hasAnyPermissions
     拥有指定的权限,显示标签体内的内容。
8,lacksPermission
     没有指定的角色,显示标签体内的内容。
 
 
 
############################### Shiro 注解 ##########################################
shiro注解用在Service和Controller层,但是如果Service层有事物注解,那么shiro注解要放在Controller层。因为两个代理对象在类型转换时会出现异常。
 
1,RequiresAuthentication
     要求用户已经被认证过。
2,RequiresGuest注解
     要求访客才能访问。
3,RequiresPermissions
     要求拥有指定的权限。
4,RequiresRoles
     要求拥有指定的角色。
 
如果达不到注解所需要的要求,会抛出异常。
posted on
2017-08-07 11:10 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/startcaft/p/7298163.html

你可能感兴趣的文章
Sysinternals
查看>>
assert函数
查看>>
label中添加图片
查看>>
float类型保存两位小数
查看>>
WPF动画之关键帧动画(2)
查看>>
poj 1837 Balance
查看>>
NO1:安装VMLinux虚拟机,安装配置Samba实现Linux与Windows文件共享
查看>>
Log4net 日志传到 graylog监控
查看>>
XVIII Open Cup named after E.V. Pankratiev. Grand Prix of Peterhof
查看>>
最优贸易 2009年NOIP全国联赛提高组(最短路)
查看>>
IOS 沙盒两种数据读取方式&NSUserDefaults读取方式
查看>>
微信小程序中的组件使用2
查看>>
sql多列合并成一列
查看>>
HPC高性能计算知识: 异构并行计算
查看>>
PHP归档phar性能測试
查看>>
【蓝桥杯单片机12】实时时钟DS1302的基本操作
查看>>
hive配置
查看>>
小练习-把MySQL数据库中的数据存入redis
查看>>
标题栏title前添加logo
查看>>
1_bg
查看>>