2019独角兽企业重金招聘Python工程师标准>>>

1、ServletContextListener是Web容器提供的用来监听Web应用的生命周期事件(比如出生,死亡)的。EnvironmentLoaderListener就是这样一种监听器。

2、EnvironmentLoaderListener是shiro的入口,它实现了ServletContextListener接口,继承了EnvironmentLoader类。如图:

3、EnvironmentLoaderListener自己表面上做了两件事情:监听容器的启动与关闭事件;

(1)容器启动时,可以从 ServletContextEvent 中直接获取 ServletContext 对象,从而获取web.xml里的一些配置,比如我最想知道的.ini文件加载的地址。从中获取 WebEnvironment 接口的实现类(默认是 IniWebEnvironment),初始化该实例,并将其加载到 ServletContext 中

(2)当容器关闭时,销毁 WebEnvironment 实例,并从 ServletContext 将其移除。

4、实际上,上面两件事都是EnvironmentLoader做的

5、EnvironmentLoaderListener的两个方法是实现了ServletContextListener接口的contextInitialized和contextDestroyed。

总结:EnvironmentLoaderListener在容器启动时创建 WebEnvironment 对象,并由该对象来读取 Shiro 配置文件,创建WebSecurityManager 与 FilterChainResolver 对象,它们都在后面将要出现的 ShiroFilter 中起到了重要作用。从 web.xml 中同样可以得知,ShiroFilter 是整个 Shiro 框架的门面,因为它拦截了所有的请求,后面是需要 Authentication(认证)还是需要 Authorization(授权)都由它说了算。

转载于:https://my.oschina.net/u/2427561/blog/1512282

shiro之入口:EnvironmentLoaderListener相关推荐

  1. Shiro Shiro Web Support and EnvironmentLoaderListener

    Shiro Shiro Web Support 主要参考: http://shiro.apache.org/web.html 还有涛哥的 作为资源控制访问的事情,主要使用在网络后台方面,所以了解了本地 ...

  2. 与Web集成——《跟我学Shiro》

    Shiro提供了与Web集成的支持,其通过一个ShiroFilter入口来拦截需要安全控制的URL,然后进行相应的控制,ShiroFilter类似于如Strut2/SpringMVC这种web框架的前 ...

  3. Shiro基础应用——角色和权限校验

    一.Shiro 为什么要用shiro: 1.项目中的密码是否可以明文存储? 2.是否任意访客,无论是否登录都可以访问任何功能? 3.项目中的各种功能操作,是否是所有用户都可以随意使用? 综上,当项目中 ...

  4. jfinal整合shiro回顾

    2019独角兽企业重金招聘Python工程师标准>>> 目前jfinal使用shiro进行身份验证和授权的后台实现已完成,现在我再来总结下学习过程及代码实现过程.最近半年多项目开发都 ...

  5. springMVC整合shiro权限框架示例与实践

    2019独角兽企业重金招聘Python工程师标准>>> 为什么写这篇文章 看过那么多框架.教程,大部分shiro的文章或教程是我见过思路最糟糕的.作者完不清楚想要表达什么起到什么作用 ...

  6. Shiro 权限框架使用总结

    我们首先了解下什么是shiro ,Shiro 是 JAVA 世界中新近出现的权限框架,较之 JAAS 和 Spring Security,Shiro 在保持强大功能的同时,还在简单性和灵活性方面拥有巨 ...

  7. JFinal整合Shiro(二)

    原文:http://zhangxiao.org/2016/jfinal-shiro-integration2/ 续上一篇<JFianl整合Shiro(一)> 我准备在这里,具体的描述下JF ...

  8. [shiro] - 怎样使用shiro?

    shiro是什么? Shiro是apache旗下的一个开源框架, 它将软件系统的安全认证相关的功能抽取出来, 实现用户身份认证, 权限授权, 加密, 会话管理等功能, 组成一个通用的安全认证框架. 为 ...

  9. Shiro 那点事儿

    2019独角兽企业重金招聘Python工程师标准>>> 前几天我遇见了一位美女,真有种相逢恨晚的感觉.她皮肤白皙.气质优雅.楚楚动人,拥有苗条的身材,却又不失丰满之躯,正所谓&quo ...

  10. 从实例入手学习Shiro与Web的整合

    场景 Shiro官网关于Web整合文档: http://shiro.apache.org/web.html#Web-configuration W3Cschool Shiro Web集成: https ...

最新文章

  1. Ubantu安装maven
  2. java中的几种对话框_Java中弹出对话框中的几种方式
  3. 随着计算机多媒体技术的产生和发展,多媒体技术及其应用与发展论文(本科)10...
  4. Django笔记(一)
  5. Android应用程序注冊广播接收器(registerReceiver)的过程分析
  6. window 注册表五大类
  7. 使用FizzBu​​zz和Mockito进行单元测试
  8. 仿苹果涂鸦软件_这些iPhone自带软件,学会一个少装十几个APP,16G手机也够用
  9. vue中如何创建组件?
  10. 搜索用计算机弹奏9277的数字,计算机基础知识参考试题(含答案)
  11. Win 10 或可以运行安卓APP
  12. LOADRUNNER连接ORACLE数据库的方法
  13. 基于JAVA+Spring+MYSQL的办公自动化系统
  14. 引用计数器法 可达性分析算法_面试官:你说你熟悉jvm?那你讲一下并发的可达性分析...
  15. JS连续赋值与求值顺序
  16. 新手小白学JAVA_IDEA修改主题 设置背景图片
  17. 面积曲线AUC(area under curve)
  18. H5直播答题并不难,看完这篇你也会
  19. word图文混排复制到TinyMCE图片不显示
  20. 用python证明采样定理_如何理解 Nyquist 采样定理?

热门文章

  1. 员工因上厕所时间超长被开除了,法院:超出正常生理需求范围!
  2. 2019年互联网大厂月饼大盘点,最丑的一家竟然是...
  3. 听说大家想补补算法和数据结构,给大家推荐一个GitHub 15k星的图文版开源项目...
  4. 音视频开发著作《Android音视频开发》终于发售了,先来一波签名送书福利!
  5. mysql对本地文件的读取_MySQL之文件读取
  6. java程序设计中科院_中科院NLPIR中文分词java版
  7. mysql双节点部署_MariaDB GALERA 集群双节点部署
  8. python打印字符串所在行_python打印文件中某个字符串的前几行
  9. go语言中错误处理方式
  10. java案例代码21-电影院购票系统[重要]