Shiro内置的FilterChain
2019独角兽企业重金招聘Python工程师标准>>>
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()方法
转载于:https://my.oschina.net/liuyuantao/blog/794452
Shiro内置的FilterChain相关推荐
- 【若依(ruoyi)】shiro 内置的过滤器(filter)
前言 shiro: 1.5.3 若依(ruoyi): v4.3 (测试shiro的环境) shiro 内置的过滤器(filter) Filter Name Class anon org.apache. ...
- Shiro笔记五:Shiro内置Filter过滤器
Shiro笔记五:Shiro内置Filter过滤器 shiro内置的过滤器 核心过滤器类:DefaultFilter,配置哪个路径对应哪个拦截器进行处理. authc:org.apache.shiro ...
- apache shiro内置过滤器 标签 注解
内置过滤器 anon(匿名) org.apache.shiro.web.filter.authc.AnonymousFilter authc(身份验证) org.apache.shiro ...
- Shiro的内置过滤器没有生效
Shiro的内置过滤器没有生效 在学习shiro时,对某些访问路径设置过滤器,如filterMap.put("/user/add","authc");但是设置好 ...
- 企业级JAVA快速开发平台, 内置代码生成器 - JavaFast快速开发平台
企业级JAVA快速开发平台, 内置代码生成器 - JavaFast快速开发平台 JavaFast是一款基于代码生成器的智能快速开发平台,可以帮助解决java项目中80%的重复工作,让开发者更多关注业务 ...
- JavaFast技术特点介绍-企业级JAVA快速开发平台, 内置java代码生成器
企业级JAVA快速开发平台, 内置代码生成器 - JavaFast快速开发平台 JavaFast是一款基于代码生成器的智能快速开发平台,可以帮助解决java项目中80%的重复工作,让开发者更多关注业务 ...
- Python 常用内置函数map、zip、filter、reduce、enumerate
Python 中有许多非常实用的内置函数,通过这些函数我们可以方便的实现某些功能,下面就列举一些常用的内置函数. 1. map() 函数 map() 可以根据提供的函数对指定序列做映射,它接受一个函数 ...
- python内置库之学习configparser库(一)
python内置库之学习configparser库(一) 1.引言 ini文件简介 [节] 键=值 注:节不能重复出现 2.自己封装了一个增删改查的类,可以参考一下 import configpars ...
- 2021年大数据Hive(五):Hive的内置函数(数学、字符串、日期、条件、转换、行转列)
全网最详细的Hive文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 系列历史文章 前言 Hive的内置函数 一.数学函数 1. 取整函数: round ...
最新文章
- javascript中async await的用法
- 29个月过去了,CSDN排名前200了:排名不断靠前的过程中,自己的技术水平和竞争力一定会不断向上...
- 机器学习 python_送书 | 深入浅出Python机器学习
- python笔记基础-Python学习笔记(基础)
- C语言结构体-大小,对齐,填充,使用及其他
- Tomcat配置虚拟主机的两种方式
- 一文读懂层次聚类(Python代码)
- 一篇万字长文读懂微软PDB、SourceLink——.net core之nuget 包调试
- Thinkphp V5.X 远程代码执行漏洞 - POC(精:集群5.0*、5.1*、5.2*)
- 由需求而产生的一款db导出excel的工具
- Flink 新一代流计算和容错——阶段总结和展望
- loadGrid layui
- NLP实验一:形式语言和自动机
- 介绍一款喜欢的产品|产品经理面试题第2篇
- Linux下网络传输(模拟路由器)
- 世界最流行鸡尾酒25款
- 我国20年农药年施用量增百万吨 生产方式需反思
- Golang 开发之Cobra初探
- Ubuntu 安装sogo 输入法
- 无聊,几行python代码写一个聊天机器人陪你聊天
热门文章
- 数据结构:前缀,中缀,后缀表达式(逆波兰表达式)
- 前端一HTML:十五: 层叠,权重,优先级的关系
- python三十九:logging模块
- java8新特性: lambda表达式:直接获得某个list/array/对象里面的字段集合
- Centos基础优化
- 银行业双活数据中心-F5在双活数据中心中的应用
- 恶意软件、Rootkit和僵尸网络
- 新版GNS3-安装及配置教程
- HDU-1299 Diophantus of Alexandria 素因子分解
- python 操作 excel