Shiro默认拦截器
默认拦截器
Shiro 内置了很多默认的拦截器,比如身份验证、授权等相关的。默认拦截器可以参考 org.apache.shiro.web.filter.mgt.DefaultFilter 中的枚举拦截器:
默认拦截器名 |
拦截器类 |
说明(括号里的表示默认值) |
身份验证相关的 |
||
authc |
org.apache.shiro.web.filter.authc .FormAuthenticationFilter |
基于表单的拦截器;如 “`/**=authc`”,如果没有登录会跳到相应的登录页面登录;主要属性:usernameParam:表单提交的用户名参数名( username); passwordParam:表单提交的密码参数名(password); rememberMeParam:表单提交的密码参数名(rememberMe); loginUrl:登录页面地址(/login.jsp);successUrl:登录成功后的默认重定向地址; failureKeyAttribute:登录失败后错误信息存储 key(shiroLoginFailure); |
authcBasic |
org.apache.shiro.web.filter.authc .BasicHttpAuthenticationFilter |
Basic HTTP 身份验证拦截器,主要属性: applicationName:弹出登录框显示的信息(application); |
logout |
org.apache.shiro.web.filter.authc .LogoutFilter |
退出拦截器,主要属性:redirectUrl:退出成功后重定向的地址(/); 示例 “/logout=logout” |
user |
org.apache.shiro.web.filter.authc .UserFilter |
用户拦截器,用户已经身份验证 / 记住我登录的都可;示例 “/**=user” |
anon |
org.apache.shiro.web.filter.authc .AnonymousFilter |
匿名拦截器,即不需要登录即可访问;一般用于静态资源过滤;示例 “/static/**=anon” |
授权相关的 |
||
roles |
org.apache.shiro.web.filter.authz .RolesAuthorizationFilter |
角色授权拦截器,验证用户是否拥有所有角色;主要属性: loginUrl:登录页面地址(/login.jsp);unauthorizedUrl:未授权后重定向的地址;示例 “/admin/**=roles[admin]” |
perms |
org.apache.shiro.web.filter.authz .PermissionsAuthorizationFilter |
权限授权拦截器,验证用户是否拥有所有权限;属性和 roles 一样;示例 “/user/**=perms["user:create"]” |
port |
org.apache.shiro.web.filter.authz .PortFilter |
端口拦截器,主要属性:port(80):可以通过的端口;示例 “/test= port[80]”,如果用户访问该页面是非 80,将自动将请求端口改为 80 并重定向到该 80 端口,其他路径 / 参数等都一样 |
rest |
org.apache.shiro.web.filter.authz .HttpMethodPermissionFilter |
rest 风格拦截器,自动根据请求方法构建权限字符串(GET=read, POST=create,PUT=update,DELETE=delete,HEAD=read,TRACE=read,OPTIONS=read, MKCOL=create)构建权限字符串;示例 “/users=rest[user]”,会自动拼出“user:read,user:create,user:update,user:delete” 权限字符串进行权限匹配(所有都得匹配,isPermittedAll); |
ssl |
org.apache.shiro.web.filter.authz .SslFilter |
SSL 拦截器,只有请求协议是 https 才能通过;否则自动跳转会 https 端口(443);其他和 port 拦截器一样; |
其他 |
||
noSessionCreation |
org.apache.shiro.web.filter.session .NoSessionCreationFilter |
不创建会话拦截器,调用 subject.getSession(false) 不会有什么问题,但是如果 subject.getSession(true) 将抛出 DisabledSessionException 异常; |
另外还提供了一个 org.apache.shiro.web.filter.authz.HostFilter,即主机拦截器,比如其提供了属性:authorizedIps:已授权的 ip 地址,deniedIps:表示拒绝的 ip 地址;不过目前还没有完全实现,不可用。
这些默认的拦截器会自动注册,可以直接在 ini 配置文件中通过 “拦截器名. 属性” 设置其属性:
perms.unauthorizedUrl=/unauthorized
另外如果某个拦截器不想使用了可以直接通过如下配置直接禁用:
perms.enabled=false
Shiro默认拦截器相关推荐
- springboot+shiro自定义拦截器互踢问题
shiro自定义拦截器继承AccessControllerFilter,实现session互踢机制. 应用场景: 我们经常会有用到,当A 用户在北京登录 ,然后A用户在天津再登录 ,要踢出北京登录的状 ...
- Jodd 5.0 使用自定义WebApp及设置默认拦截器
首先使用IDEA创建Java工程,目录如下图所示: 使用 Jetty作为Web服务器,配置 jetty.xml: <?xml version="1.0" encoding=& ...
- shiro学习(19): 拦截器
1 拦截器介绍 Shiro使用了与Servlet一样的Filter接口进行扩展:所以如果对Filter不熟悉可以参考<Servlet3.1规范>http://www.iteye.com/b ...
- shiro 拦截器链
Shiro使用了与Servlet一样的Filter接口进行扩展:所以如果对Filter不熟悉可以参考<Servlet3.1规范>http://www.iteye.com/blogs/sub ...
- 使用struts2中默认的拦截器以及自定义拦截器
转自:http://blog.sina.com.cn/s/blog_82f01d350101echs.html 如何使用struts2拦截器,或者自定义拦截器.特别注意,在使用拦截器的时候,在Acti ...
- 解决自定义拦截器导致默认的拦截器不起作用的问题
在上篇文章中我们留下了这个问题.在这里我们一点一点的解决. 问题一 由于我们写了自己的拦截器,默认的拦截器不起作用了. 解决办法一 把默认拦截器加入到配置文件中 <?xml version=&q ...
- Struts2拦截器的使用
如何使用struts2拦截器,或者自定义拦截器.特别注意,在使用拦截器的时候,在Action里面必须最后一定要引用struts2自带的拦截器缺省堆栈defaultStack,如下(这里我是引用了str ...
- Struts2——(7)拦截器组件
AOP:面向切面编程(通过配置文件来指定作用到目标对象) OOP:面向对象编程 AOP具有很好的可插拔特性,很灵活. 可用于封装共通的业务处理,之后可以通过配置作用到Action组件上. 共通的业务处 ...
- Struts2_day04--课程介绍_Struts2拦截器概述底层原理_重要的概念
Struts2_day04 上节内容 今天内容 Struts2拦截器概述 拦截器底层原理 重要的概念 自定义拦截器 自定义登录拦截器 Struts2的标签库 Struts2表单标签(会用) Strut ...
最新文章
- Aras学习笔记(1)学习Aras已半年有余,也积攒一些学习笔记,今天起会陆续分享出来,有兴趣的朋友一起交流...
- 目标检测中的特征冲突与不对齐问题
- 生产订单新增按钮没权限
- SpringMVC学习01之回顾Servlet
- 数据结构--队列(数组)的一种实现
- declare sql语句_每天10分钟学习T-SQL语言基础(Part 5)
- 我看好嵌入式的未来!!!
- 5848. 树上的操作
- FreeSWITCH 下载地址
- linux内核烧制,学会分析Linux内核需要多久?8分钟
- 记一次pthread_cancel_init段错误分析(bpftrace)
- Vue实现一个按钮切换显示不同的div内容
- vbox黑苹果10.6.5升级无法进入系统(解决)
- (Zotero)开源的文献管理器 真香
- Windows XP精简版无添加删除组件选项而无法安装IIS的解决之道
- 我国支付结算体系概况
- 分治法 —— 循环比赛日程安排表
- Cypress之模拟键盘鼠标操作以及页面元素拖动操作
- 2009最新山东省百强企业排名
- 大视角、大方向、大问题、大架构:(结局)解决问题的出发点
热门文章
- ROBOTS.TXT在SEO优化中的运用(ROBOTS.TXT SEO优化实战)
- Spring Boot JDBC 使用教程
- 移动端真机调试的两种方法
- [Python]小甲鱼Python视频第037课(类和对象:面向对象编程 )课后题及参考解答
- [ An Ac a Day ^_^ ] CodeForces 680A Bear and Five Cards
- ecshop 多语言版 fckeditor,支持中文英文韩文等众多语言
- Python一些很实用的知识
- 利用GDB调试 MSQL
- LINUX环境:MySQL和Oracle开机自启动
- SVN篇:Shell脚本实现SVN启动,停止,重启