Shiro中常见过滤器
配置缩写 | 对应的过滤器 | 功能 |
anno | AnonymousFilter | 指定url可以匿名访问 |
authc | FormAuthenticationFilter | 指定url需要form表单登录,默认会从请求中获取账号密码等参数并尝试登录,如果登陆不了就会跳转到loginUrl配置的路径。我们也可以用这个过滤器做默认的登录逻辑,但是一般都是我们自己在控制器写登录逻辑,可以自定义返回出错的信息 |
authcBasic | BasicHttpAuthenticationFilter | 指定url需要basic登录 |
logout | LogoutFilter | 登出过滤器,配置指定url就可以实现退出功能 |
noSessionCreation |
NoSessionCreationFilter |
禁止创建会话 |
perms | PermissionsAuthorizationFilter | 需要指定权限才能访问 |
port | PortFilter | 需要指定端口才能访问 |
rest | HttpMethodPermissionFilter | 将http请求方法转化成相应的动词来构造一个权限字符串 |
roles | RolesAuthorizationFilter | 需要指定角色才能访问 |
ssl | SslFilter | 需要https请求才能访问 |
user | UserFilter | 需要已登录或者记住我的用户才能访问 |
ShiroFilterFactoryBean入口
ShiroFilterFactoryBean实现FactoryBean,说明他是ShiroFilter的工厂类,其入口方法为createInstance(),该方法实现的功能有:
1.创建了一个过滤器管理类FilterChainManager,该类主要管理shiro里的过滤器,里面有2个重要的属性
1.1 filters:管理全部过滤器,包括默认的关于身份验证和权限验证的过滤器,这些过滤器分为两组,一组是认证过滤器,有anon,authcBasic,auchc,user,一组是授权过滤器,有perms,roles,ssl,rest,port。同时也包含在xml里filters配置的自定义过滤器。在其它地方使用时都是从过滤器管理类里filters里拿的。且过滤器是单例的,整个Shiro框架只维护每种类型过滤器的单例。
1.2 filterChains:过滤链。它是我们重点关注的东西,是一个Map对象,其中key就是我们请求的url,value是一个NamedFilterList对象,里面存放的是与url对应的一系列过滤器。这后面会详细讲解。
2.将过滤器管理类设置到PathMatchingFilterChainResolver类里,该类负责路径和过滤器链的解析与匹配。根据url找到过滤器链。
Shiro中常见过滤器相关推荐
- 在shiro中控制自动登录
场景一:集群中各节点登录状态保持一致,当然这个集群没有统一的认证中心 场景二:微信环境微店项目,自动登录,进入微店,则判断用户是否注册,如果已经注册则自动登录否则跳转到注册页面(ps:需要用户关注公众 ...
- 《AngularJS实战》——3.1 模板中的过滤器
本节书摘来自华章出版社<AngularJS实战>一 书中的第3章,第3.1节,作者:陶国荣,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 3.1 模板中的过滤 ...
- 缓存中常见的概念及解决方案
缓存中常见的概念及解决方案 缓存穿透 1.概念 用户查询数据,在数据库中以及缓存中(redis)都查询不到,导致每次请求来时,缓存(redis)中查询一次,数据库查询一次,最后返回空,每次请求都会有俩 ...
- Shiro的authc过滤器的执行流程
1.先执行isAccessAllowed(),通过subject.isAuthenticated()判断当前session中的subject是否已经登陆过.如果在当前session即会话中已经登陆过, ...
- 在Java中实现过滤器和面包店锁
为了了解锁的工作方式,实现自定义锁是一个好方法. 这篇文章将展示如何在Java上实现Filter和Bakery锁(自旋锁),并将它们的性能与Java的ReentrantLock进行比较. 过滤器锁和面 ...
- Shiro【授权过滤器、与ehcache整合、验证码、记住我】
2019独角兽企业重金招聘Python工程师标准>>> 前言 本文主要讲解的知识点有以下: Shiro授权过滤器使用 Shiro缓存 与Ehcache整合 Shiro应用->实 ...
- shiro学习系列:shiro自定义filter过滤器
shiro学习系列:shiro自定义filter过滤器 自定义JwtFilter的hierarchy(层次体系) 上代码 package com.finn.springboot.common.conf ...
- Java中常见的单词
abstract (关键字) 抽象 ['.bstr.kt] access vt.访问,存取 ['.kses]'(n.入口 ...
- 搜索中常见数据结构与算法探究(二)
本文介绍了几个常见的匹配算法,通过算法过程和算法分析介绍了各个算法的优缺点和使用场景,并为后续的搜索文章做个铺垫:读者可以通过比较几种算法的差异,进一步了解匹配算法演进过程以及解决问题的场景:KMP算 ...
最新文章
- 英语发音规则---N字母
- python代码大全p-Python5种代码维护工具
- (三)数字判断大小语句
- python docker自动化_自动化 – 自动创建docker容器并启动python脚本
- 通过sql-labs进行sql注入学习(一)
- [转]MVC中如何使用RDLC报表
- python打包工具报错_python打包生成exe报错
- 跟韦老师聊了一个深夜
- 心语收集11:我们可以经得起心脏的千疮百孔,可以接受感情的支离破碎,却不愿喝下忘情水,忘记那曾经爱过的人。...
- 谷歌提出深度CNN模型NIMA:帮你挑选清晰且有美感的图片
- Android NDK开发之 ARM与NEON指令说明
- CommandBehavior.CloseConnection使用
- qpsk调制matlab仿真,QPSK调制解调仿真
- jquery读取xml比较js读取xml 比比就知道
- coreldraw2021永久序列号和激活注册教程
- 计算机不能辨别汉字wifi,电脑搜不到带汉字的wi-fi怎么办
- 视频怎么做GIF表情包?教你一键生成gif动图
- [leetcode每日一题2021/5/8]1723. 完成所有工作的最短时间
- 一味迎合观众,就会被淘汰
- First-chance exception in KERNEL32.DLL 0xE06D7363 Microsoft C++ Exception