文档章节

Shiro内置的FilterChain

 游龙潜行
发布于 2017/05/07 18:21
字数 780
阅读 132
收藏 0

1) Shiro验证URL时,URL匹配成功便不再继续匹配查找(所以要注意配置文件中的URL顺序,
  尤其在使用通配符时) 故filterChainDefinitions的配置顺序为自上而下,以最上面的为准 
2) 当运行一个Web应用程序时,Shiro将会创建一些有用的默认Filter实例,并自动地在[main]项中
   将它们置为可用 自动地可用的默认的Filter实例是被DefaultFilter枚举类定义的,
   枚举的名称字段就是可供配置的名称 
anon---------------org.apache.shiro.web.filter.authc.AnonymousFilter 
authc--------------org.apache.shiro.web.filter.authc.FormAuthenticationFilter
authcBasic---------org.apache.shiro.web.filter.authc.BasicHttpAuthenticationFilter
logout-------------org.apache.shiro.web.filter.authc.LogoutFilter
noSessionCreation--org.apache.shiro.web.filter.session.NoSessionCreationFilter
perms--------------org.apache.shiro.web.filter.authz.PermissionAuthorizationFilter
port---------------org.apache.shiro.web.filter.authz.PortFilter 
rest---------------org.apache.shiro.web.filter.authz.HttpMethodPermissionFilter 
roles--------------org.apache.shiro.web.filter.authz.RolesAuthorizationFilter
ssl----------------org.apache.shiro.web.filter.authz.SslFilter 
user---------------org.apache.shiro.web.filter.authz.UserFilter

3) 通常可将这些过滤器分为两组 
anon,authc,authcBasic,user是第一组认证过滤器 
perms,port,rest,roles,ssl是第二组授权过滤器 
注意user和authc不同:
   当应用开启了rememberMe时,用户下次访问时可以是一个user,但绝不会是authc,
   因为authc是需要重新认证的,user表示用户不一定已通过认证,只要曾被Shiro记住过
   登录状态的用户就可以正常发起请求,比如rememberMe,说白了,以前的一个用户登录
   时开启了rememberMe,然后他关闭浏览器,下次再访问时他就是一个user,而不会authc

4) 举几个例子 
/admin=authc,roles[admin]      
表示用户必需已通过认证,并拥有admin角色才可以正常发起/admin请求

/edit=authc,perms[admin:edit]  
表示用户必需已通过认证,并拥有admin:edit权限才可以正常发起/edit请求 

/home=user
表示用户不一定需要已经通过认证,只需要曾经被Shiro记住过登录状态就可以正常发起/home请求

5) 各默认过滤器常用如下(注意URL Pattern里用到的是两颗星,这样才能实现任意层次的全匹配)
/admins/**=anon
无参,表示可匿名使用,可以理解为匿名用户或游客 

/admins/user/**=authc
无参,表示需认证才能使用 

/admins/user/**=authcBasic
无参,表示httpBasic认证 

/admins/user/**=user
无参,表示必须存在用户,当登入操作时不做检查 

/admins/user/**=ssl
无参,表示安全的URL请求,协议为https 

/admins/user/**=perms[user:add:*] 
参数可写多个,多参时必须加上引号,且参数之间用逗号分割,如/admins/user/**=perms["user:add:*,user:modify:*"]
当有多个参数时必须每个参数都通过才算通过,相当于isPermitedAll()方法 

/admins/user/**=port[8081] 
当请求的URL端口不是8081时,跳转到schemal://serverName:8081?queryString 
其中schmal是协议http或https等,serverName是你访问的Host,8081是Port端口,queryString是你访问的URL里的?后面的参数

/admins/user/**=rest[user] 
根据请求的方法,相当于/admins/user/**=perms[user:method],其中method为post,get,delete等

/admins/user/**=roles[admin] 
参数可写多个,多个时必须加上引号,且参数之间用逗号分割,如/admins/user/**=roles["admin,guest"] 
当有多个参数时必须每个参数都通过才算通过,相当于hasAllRoles()方法 

© 著作权归作者所有

粉丝 1
博文 6
码字总数 4453
作品 1
深圳
私信 提问
Apache Shiro 使用手册(五)Shiro 配置说明

Apache Shiro的配置主要分为四部分: 对象和属性的定义与配置 URL的过滤器配置 静态用户配置 静态角色配置 其中,由于用户、角色一般由后台进行操作的动态数据,因此Shiro配置一般仅包含前两...

heroShane
2014/02/10
0
0
Shrio 权限管理filterChainDefinitions过滤器配置

/** * Shiro-1.2.2内置的FilterChain *@see ============================================================================================================================= @see 1)Sh......

大糊涂
2015/06/09
0
1
shiro的代理过滤器

在配置shiro的时候第一件事情就是在web.xml文件中配置一个由spring提供的类:org.springframework.web.filter.DelegatingFilterProxy按照字面的翻译这应该是一个代理过滤器的策略。 这个类其...

hyssop
2016/07/18
35
0
spring boot shiro结合使用,filterchain的问题

我这边用spring boot搭建了一套东西,其中用到了shiro, 但是我在springboot与shiro配合过程中发现,一个问题: 我在boot上声明的filter比如:MyUserfilter(继承Userfilter) 然后shirofilt...

java10001
2014/12/02
9.8K
9
spring boot shiro结合使用,资源资源加载不到问题(filterchain的问题 )

我这边用有人用spring boot+shiro搭建项目。 但是在springboot与shiro配合过程中发现,一个问题:shirofilter配置如下: 跟踪代码就可以发现,shiro的filterchain会首先经过一次shirofilter...

MaxWell__
2018/05/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

springboot 日志

spring-boot-starter中就提供了对spring-boot-starter-logging的依赖 在spring-boot-starter-logging中可以看到以及集成了slf4j与具体实现logback的默认支持 日志级别 默认情况下,Spring Bo...

少年已不再年少
17分钟前
2
0
UltraEdit使用正则表达式

正则表达式 (UltraEdit Syntax): % 匹配行首 - 表明要搜索的字符串一定在行首. $ 匹配行尾 - 表明要搜索的字符串一定在行尾 ? 匹配除换行符外的任一单个字符. * 匹配任意个数的字符出现任意次...

阿锋zxf
24分钟前
1
0
苹果面向Mac发布英特尔处理器漏洞缓解措施

去年苹果向Safari浏览器推出安全更新以修复基于ARM价格和英特尔的处理器存在的推测执行系列安全漏洞。 不过当时苹果并未发布有关处理器性能下降的测试结果,但大家都知道安装缓解措施会造成处...

linuxCool
24分钟前
2
0
springboot使用

Spring 3.1 引入了基于注释(annotation)的缓存(cache)技术,它本质上不是一个具体的缓存实现方案(例如 EHCache 或者 OSCache),而是一个对缓存使用的抽象,通过在既有代码中添加少量它...

贾峰uk
39分钟前
3
0
NCRE考试感想 四级嵌入式(上)

权威的官方文件 考试时间:2017年3月 经验写于:2017年5月 万事万物都在变化,四级嵌入式也是如此。所以,该经验仅作为参考,官方的文件才是权威。   考试时间与题目架构 考试时间为90min,...

志成就
41分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部