RELATEED CONSULTING
相关咨询
选择下列产品马上在线沟通
服务时间:8:30-17:00
你可能遇到了下面的问题
关闭右侧工具栏

新闻中心

这里有您想知道的互联网营销解决方案
​springboot中集成shiro框架的方法-创新互联

springboot中集成shiro框架

乌拉特前ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:13518219792(备注:SSL证书合作)期待与您的合作!

关于shior框架的介绍,需要引入相关jar如下:

    
    
        org.apache.shiro
        shiro-spring
        1.4.0
    
    
    
        org.crazycake
        shiro-redis
        3.2.2
    
    
        org.springframework.boot
        spring-boot-starter-data-redis
    

未整合Spring/SpringBoot以前,是需要在Web.xml中定义org.apache.shiro.web.servlet.ShiroFilter过滤器的
Shiro的初始化工作在web.xml中设置监听器完成

   
 org.apache.shiro.web.env.EnvironmentLoaderListener
 
 
     ShiroFilter
     org.apache.shiro.web.servlet.ShiroFilter
 
 
     ShiroFilter
     /*
 
 Shiro 的 EnvironmentLoaderListener 就是一个典型的 ServletContextListener,它也是整个 Shiro Web 应用的入口 。

EventListener 是一个标志接口,里面没有任何的方法,Servlet 容器中所有的 Listener 都要继承这个接口(这是 Servlet 规范)。


ServletContextListener 是一个 ServletContext 的监听器,用于监听容器的启动与关闭事件,包括如下两个方法:
void contextInitialized(ServletContextEvent sce); // 当容器启动时调用
void contextDestroyed(ServletContextEvent sce); // 当容器关闭时调用

可以从 ServletContextEvent 中直接获取 ServletContext 对象。

EnvironmentLoaderListener 不仅实现了 ServletContextListener 接口,也扩展了 EnvironmentLoader 类,应该是需要在 Servlet 容器中调用 EnvironmentLoader 对象的生命周期方法
从 Shiro 1.2 开始引入了 Environment/WebEnvironment 的概念,即由它们的实现提供相应的 SecurityManager 及其相应的依赖。ShiroFilter 会自动找到 Environment 然后获取相应的依赖。
通过 EnvironmentLoaderListener 来创建相应的 WebEnvironment,并自动绑定到 ServletContext,默认使用 IniWebEnvironment 实现。

EnvironmentLoader的功能:

当容器启动时,读取 web.xml 文件,从中获取 WebEnvironment 接口的实现类(默认是 IniWebEnvironment),初始化该实例,并将其加载到 ServletContext 中。
当容器关闭时,销毁 WebEnvironment 实例,并从 ServletContext 将其移除。
IniWebEnvironment的功能:

查找并加载 shiro.ini 配置文件,首先从自身成员变量里查找,然后从 web.xml 中查找,然后从 /WEB-INF 下查找,然后从 classpath 下查找,若均未找到,则直接报错。
当找到了 ini 配置文件后就开始解析,此时构造了一个 Bean 容器(相当于一个轻量级的 IOC 容器),最终的目标是为了创建 WebSecurityManager 对象与 FilterChainResolver 对象,创建过程使用了 Abstract Factory 模式
EnvironmentLoaderListener无非就是在容器启动时创建 WebEnvironment 对象,并由该对象来读取 Shiro 配置文件,创建WebSecurityManager(安全管理器)与 FilterChainResolver(过滤链解析器) 对象,在ShiroFilter中起到了重要作用。

ShiroFilter 是整个 Shiro 的入口点,用于拦截需要安全控制的请求进行处理。
因为它拦截了所有的请求,后面的 Authentication(认证)和Authorization(授权)都由ShiroFilter说了算

和Spring/SpringBoot整合以后,我们只需要注入ShiroFilter即可,ShiroFilter由ShiroFilterFactoryBean负责创建。所以注入ShiroFilterFactoryBean,由 ShiroFilterFactoryBean创建 ShiroFilter即可

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


文章题目:​springboot中集成shiro框架的方法-创新互联
本文来源:http://lswzjz.com/article/cchggc.html