配置缩写 对应的过滤器 功能
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中常见过滤器相关推荐

  1. 在shiro中控制自动登录

    场景一:集群中各节点登录状态保持一致,当然这个集群没有统一的认证中心 场景二:微信环境微店项目,自动登录,进入微店,则判断用户是否注册,如果已经注册则自动登录否则跳转到注册页面(ps:需要用户关注公众 ...

  2. 《AngularJS实战》——3.1 模板中的过滤器

    本节书摘来自华章出版社<AngularJS实战>一 书中的第3章,第3.1节,作者:陶国荣,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 3.1 模板中的过滤 ...

  3. 缓存中常见的概念及解决方案

    缓存中常见的概念及解决方案 缓存穿透 1.概念 用户查询数据,在数据库中以及缓存中(redis)都查询不到,导致每次请求来时,缓存(redis)中查询一次,数据库查询一次,最后返回空,每次请求都会有俩 ...

  4. Shiro的authc过滤器的执行流程

    1.先执行isAccessAllowed(),通过subject.isAuthenticated()判断当前session中的subject是否已经登陆过.如果在当前session即会话中已经登陆过, ...

  5. 在Java中实现过滤器和面包店锁

    为了了解锁的工作方式,实现自定义锁是一个好方法. 这篇文章将展示如何在Java上实现Filter和Bakery锁(自旋锁),并将它们的性能与Java的ReentrantLock进行比较. 过滤器锁和面 ...

  6. Shiro【授权过滤器、与ehcache整合、验证码、记住我】

    2019独角兽企业重金招聘Python工程师标准>>> 前言 本文主要讲解的知识点有以下: Shiro授权过滤器使用 Shiro缓存 与Ehcache整合 Shiro应用->实 ...

  7. shiro学习系列:shiro自定义filter过滤器

    shiro学习系列:shiro自定义filter过滤器 自定义JwtFilter的hierarchy(层次体系) 上代码 package com.finn.springboot.common.conf ...

  8. Java中常见的单词

    abstract (关键字)             抽象 ['.bstr.kt]  access                            vt.访问,存取 ['.kses]'(n.入口 ...

  9. 搜索中常见数据结构与算法探究(二)

    本文介绍了几个常见的匹配算法,通过算法过程和算法分析介绍了各个算法的优缺点和使用场景,并为后续的搜索文章做个铺垫:读者可以通过比较几种算法的差异,进一步了解匹配算法演进过程以及解决问题的场景:KMP算 ...

最新文章

  1. 英语发音规则---N字母
  2. python代码大全p-Python5种代码维护工具
  3. (三)数字判断大小语句
  4. python docker自动化_自动化 – 自动创建docker容器并启动python脚本
  5. 通过sql-labs进行sql注入学习(一)
  6. [转]MVC中如何使用RDLC报表
  7. python打包工具报错_python打包生成exe报错
  8. 跟韦老师聊了一个深夜
  9. 心语收集11:我们可以经得起心脏的千疮百孔,可以接受感情的支离破碎,却不愿喝下忘情水,忘记那曾经爱过的人。...
  10. 谷歌提出深度CNN模型NIMA:帮你挑选清晰且有美感的图片
  11. Android NDK开发之 ARM与NEON指令说明
  12. CommandBehavior.CloseConnection使用
  13. qpsk调制matlab仿真,QPSK调制解调仿真
  14. jquery读取xml比较js读取xml 比比就知道
  15. coreldraw2021永久序列号和激活注册教程
  16. 计算机不能辨别汉字wifi,电脑搜不到带汉字的wi-fi怎么办
  17. 视频怎么做GIF表情包?教你一键生成gif动图
  18. [leetcode每日一题2021/5/8]1723. 完成所有工作的最短时间
  19. 一味迎合观众,就会被淘汰
  20. First-chance exception in KERNEL32.DLL 0xE06D7363 Microsoft C++ Exception

热门文章

  1. python中的特殊方法 __getitem__()
  2. MySQL的进阶查询
  3. 苹果手机python环境_iOS自动化环境搭建(超详细)
  4. 二、【手机摄影】手机专业拍照模式介绍
  5. 电脑黑屏进入节电模式解决办法
  6. python开发用什么编程软件,五款不同阶段使用的IDE
  7. 如何设置计算机远程,如何设置计算机远程启动?
  8. 基于android的自习室座位预约
  9. 写小米商城时遇到的bug和一些样式写法
  10. 学习开发安卓应用总结(快速了解-从下载软件到开发运行APP)