标签:集成 xml 对象 spring 访问 参数 ShiroFilterFactoryBean shiro
基于xml 配置文件集成
1. web.xml 文件
<!-- 配置Shiro安全过滤器 --> <filter> <filter-name>shiroFilter</filter-name> <!-- 此类由spring-web 提供 --> <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class> <init-param> <!-- 这个参数名在DelegatingFilterProxy中定义 --> <param-name>targetBeanName</param-name> <!-- 这个值在spring-shiro.xml配置文件中定义 --> <param-value>shiroFilterFactory</param-value> </init-param> </filter>
<filter-mapping>
<filter-name>shiroFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
shiro 的配置文件
spring-shiro.xml
<!-- 配置SecurityManager对象,(Shiro框架核心,负责调用相关组件,实现 用户身份认证,缓存,会话管理等功能 --> <bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager"> <property name="Realm" ref="shiroUserRealm"></property> </bean> <!-- 配置ShiroFilterFactoryBean对象 (Shiro中会通过很多过滤器对WEB请求做预处理 ,这些过滤器的创建 底层设计了一个工厂类--> <bean id="shiroFilterFactory" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean"> <!-- 注入securityManager对象 --> <property name="SecurityManager" ref="securityManager"></property> <!-- 配置登录页面 --> <property name="LoginUrl" value="/doLoginUI.do"></property> <!-- 过滤给则(哪些资源允许匿名访问,哪些资源需要授权访问) anon:允许匿名访问 authc需要授权访问 --> <property name="FilterChainDefinitionMap"> <map> <entry key="/bower_components/**" value="anon"></entry> <entry key="/build/**" value="anon"></entry> <entry key="/dist/**" value="anon"></entry> <entry key="/plugins/**" value="anon"></entry> <entry key="/doLogin.do" value="anon"></entry> <entry key="/**" value="authc"></entry><!-- 必须认证 --> </map> </property> </bean>
流程解析:
当客户端访问服务器时,DelegatingFilterProxy 对象会拦截所有的请求路径,并把它交给ShiroFilterFactoryBean对象处理,ShiroFilterFactoryBean对象中注入了SecurityMananger对象,负责调用相关组件,实现用户身份认证,缓存,会话管理等功能。
ShiroFilterFactoryBean对象中还配置了FilterChainDefinitionMap这个参数,这个参数其实也相当于一个过滤器,他定义了哪些资源外部可以直接进行访问,哪些资源需要认证之后才能访问。ShiroFilterFactoryBean对象还对LoginUrl这个参数进行了设置,这个参数主要意义为:FilterChainDefinitionMap拦截的请求,直接重定向到LoginUrl这个参数配置的路径进行访问。
标签:集成,xml,对象,spring,访问,参数,ShiroFilterFactoryBean,shiro 来源: https://www.cnblogs.com/gxlaqj/p/11483000.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。