文档章节

Shiro内置的FilterChain

小致Daddy
 小致Daddy
发布于 2016/11/25 17:55
字数 852
阅读 198
收藏 0

Shiro内置的FilterChain 
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()方法 

© 著作权归作者所有

小致Daddy

小致Daddy

粉丝 193
博文 576
码字总数 602911
作品 0
济南
技术主管
私信 提问
Apache Shiro 使用手册(五)Shiro 配置说明

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

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

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

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

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

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

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

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

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

MaxWell__
2018/05/02
69
2

没有更多内容

加载失败,请刷新页面

加载更多

java通过ServerSocket与Socket实现通信

首先说一下ServerSocket与Socket. 1.ServerSocket ServerSocket是用来监听客户端Socket连接的类,如果没有连接会一直处于等待状态. ServetSocket有三个构造方法: (1) ServerSocket(int port);...

Blueeeeeee
今天
6
0
用 Sphinx 搭建博客时,如何自定义插件?

之前有不少同学看过我的个人博客(http://python-online.cn),也根据我写的教程完成了自己个人站点的搭建。 点此:使用 Python 30分钟 教你快速搭建一个博客 为防有的同学不清楚 Sphinx ,这...

王炳明
昨天
5
0
黑客之道-40本书籍助你快速入门黑客技术免费下载

场景 黑客是一个中文词语,皆源自英文hacker,随着灰鸽子的出现,灰鸽子成为了很多假借黑客名义控制他人电脑的黑客技术,于是出现了“骇客”与"黑客"分家。2012年电影频道节目中心出品的电影...

badaoliumang
昨天
14
0
很遗憾,没有一篇文章能讲清楚线程的生命周期!

(手机横屏看源码更方便) 注:java源码分析部分如无特殊说明均基于 java8 版本。 简介 大家都知道线程是有生命周期,但是彤哥可以认真负责地告诉你网上几乎没有一篇文章讲得是完全正确的。 ...

彤哥读源码
昨天
15
0
jquery--DOM操作基础

本文转载于:专业的前端网站➭jquery--DOM操作基础 元素的访问 元素属性操作 获取:attr(name);$("#my").attr("src"); 设置:attr(name,value);$("#myImg").attr("src","images/1.jpg"); ......

前端老手
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部