spring 整合 shiro_Shiro与Spring配置文件的整合

v2-d907813ff4afd25beae336d7bc86d444_1440w.jpg?source=172ae18b

要将SHiro与Spring框架整合在一起就要对配置文件去整合。首先就是web.xml文件,第一

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>rabdDemo</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
  <!-- 配置spring配置的文件 -->
  <context-param>
  	<param-name>contextConfigLocation</param-name>
  	<!-- 所有以applicationContext-开头的配置文件都会去解析 -->
  	<param-value>classpath:applicationContext-*.xml</param-value>
  </context-param>
  <!-- 配置listenner -->
  <listener>
  	<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
  <!-- 配置springmvc -->
  <servlet>
  	<servlet-name>springmvc</servlet-name>
  	<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  	<init-param>
  		<param-name>contextConfigLocation</param-name>
  		<param-value>classpath:springmvc.xml</param-value>
  	</init-param>
  	
  	<load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
  	<servlet-name>springmvc</servlet-name>
  	<url-pattern>*.do</url-pattern>
  </servlet-mapping>
  <!-- 解决中文乱码 -->
  <filter>
  	<filter-name>encoding</filter-name>
  	<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
 	<init-param>
 		<param-name>encoding</param-name>
 		<param-value>utf-8</param-value>
 	</init-param>
 	<init-param>
 		<param-name>forceEncoding</param-name>
 		<param-value>true</param-value>
 	</init-param>
  </filter>
  <filter-mapping>
  	<filter-name>encoding</filter-name>
  	<url-pattern>/</url-pattern>
  </filter-mapping>
  
<!--   <filter> -->
<!--   	<filter-name>UserLoginFilter</filter-name> -->
<!--   	<filter-class>com.bjsxt.web.fliter.UserLoginFilter</filter-class> -->
<!--   </filter> -->
<!--   <filter-mapping> -->
<!--   	<filter-name>UserLoginFilter</filter-name> -->
<!--   	<url-pattern>/*</url-pattern> -->
<!--   </filter-mapping> -->
  
  
<!--   <filter> -->
<!--   	<filter-name>SafeFilter</filter-name> -->
<!--   	<filter-class>com.bjsxt.web.fliter.SafeFliter</filter-class> -->
<!--   </filter> -->
<!--   <filter-mapping> -->
<!--   	<filter-name>SafeFilter</filter-name> -->
<!--   	<url-pattern>/*</url-pattern> -->
<!--   </filter-mapping> -->
  <!-- 注册DelegatingFilterProxy,作用通过代理模式将sevelte容器中的filter同spring中的bean联系起来 -->
  <filter>
  	<filter-name>shiro</filter-name>
  	<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
 	<init-param>
 		<param-name>targetFilterLifecycle</param-name>
 		<param-value>true</param-value>
 	</init-param>
 	<!-- 设置spring容器中filter中的bean的Id -->
 	<init-param>
 		<param-name>targetBeanName</param-name>
 		<param-value>shiroFilter</param-value>
 	</init-param>
  </filter>
  <filter-mapping>
  	<filter-name>shiro</filter-name>
  	<url-pattern>/*</url-pattern>
  </filter-mapping>
  
</web-app>

在这里面要己得注册DelegatingFilterProxy时候,在配置它的targetBeanName的时候,要记得一定要与spring-shiro中的bean的id对应起来

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:context="http://www.springframework.org/schema/context"
	xmlns:mvc="http://www.springframework.org/schema/mvc" 
xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:aop="http://www.springframework.org/schema/aop"
	xsi:schemaLocation="
        http://www.springframework.org/schema/beans 
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/tx 
        http://www.springframework.org/schema/tx/spring-tx.xsd
        http://www.springframework.org/schema/aop 
        http://www.springframework.org/schema/aop/spring-aop.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context.xsd">
        
        <!-- 注册凭证匹配器 -->
        <bean id="credentialsMatcher" class="org.apache.shiro.authc.credential.HashedCredentialsMatcher">
        	<property name="hashAlgorithmName" value="md5"></property>
        	<property name="hashIterations" value="2"></property>
        
        </bean>
		<!--注册自定义的realm -->
        <bean id="customRealm" class="com.bjsxt.realm.CustomRealm">
        	<property name="credentialsMatcher" ref="credentialsMatcher"></property>
        
        </bean>
        <bean id="sessionManager" class="org.apache.shiro.web.session.mgt.DefaultWebSessionManager">
        	<property name="globalSessionTimeout" value="100000"></property>
        	<property name="deleteInvalidSessions" value="true"></property>
        </bean>
       <!--  注册缓存 -->
       <bean id="simpleCookie" class="org.apache.shiro.web.servlet.SimpleCookie">
       		<property name="name" value="rememberMe"></property>
       		<property name="maxAge" value="604800"></property>
       </bean>
        <!-- 注册remember注册管理器 -->
        <bean id="rememberMeManager" class="org.apache.shiro.web.mgt.CookieRememberMeManager">
        	<property name="cookie" ref="simpleCookie"></property>
        
        </bean>
       <!-- 注册安全管理器  -->
       <bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
       	<property name="realm" ref="customRealm"></property>
       	<property name="sessionManager" ref="sessionManager"></property>
       	<property name="rememberMeManager" ref="rememberMeManager"></property>
       </bean>
       <!-- 注册shrioFilterFactoryBean,id与web.xml中的过滤器名称对应上 -->
       <bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
       	<property name="securityManager" ref="securityManager"></property>
       	<property name="loginUrl" value="/user/userLogin.do"></property>
		<property name="successUrl" value="/user/loginSuccess.do"></property>
		<property name="unauthorizedUrl" value="fault"></property>       
        <!--设置过滤器链  -->
       	<property name="filterChainDefinitions">
       		<value>
       			/user/userLogin.do=authc
       			/**=anon
       			/user/loginSuccess.do=user
       			/menu/showMenu.do=user
       		</value>
       	</property>
       </bean>
        </beans>

这样基本就可以实现一个整合的配置文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值