shiro权限框架(五)

五、与Spring集成

 5.1 环境准备

 <dependency>
           <groupId>org.apache.shiro</groupId>
           <artifactId>shiro-core</artifactId>
           <version>1.2.5</version>
 </dependency>
 <dependency>
           <groupId>org.apache.shiro</groupId>
           <artifactId>shiro-web</artifactId>
           <version>1.2.5</version>
 </dependency>
 <dependency>
           <groupId>org.apache.shiro</groupId>
           <artifactId>shiro-spring</artifactId>
           <version>1.2.5</version>
 </dependency>

 5.2  web.xml添加shiro Filter

 <filter>
     <filter-name>shiroFilter</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>
 </filter>
 <filter-mapping>
     <filter-name>shiroFilter</filter-name>
     <url-pattern>/*</url-pattern>
 </filter-mapping>

DelegatingFilterProxy 作用是自动到 spring 容器查找名字为 shiroFilter(filter-name)的 bean并把所有 Filter 的操作委托给它

  5.3  spring-shiro.xml

 <?xml version="1.0" encoding="UTF-8"?>
 <beans xmlns="http://www.springframework.org/schema/beans"
     xmlns:util="http://www.springframework.org/schema/util" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd
        http://www.springframework.org/schema/cache
        http://www.springframework.org/schema/cache/spring-cache.xsd ">

     <bean id="UserRealm" class="com.etoc.bms.web.shiro.realm.UserRealm">
        <property name="credentialsMatcher" ref="credentialsMatcher"/>
     </bean>

     <bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
         <property name="realm" ref="UserRealm" />
     </bean>

   <!-- 凭证匹配器 -->
     <bean id="credentialsMatcher" class="com.etoc.bms.web.shiro.matcher.CustomCredentialsMatcher"></bean>

     <bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
         <property name="securityManager" ref="securityManager" />
         <property name="loginUrl" value="/transfer2" />
         <property name="filterChainDefinitions">
             <value>
                 /transfer2 = anon
                 /login = anon
                 /viewlib/resources/** = anon
                 /viewlib/login/* = anon
                 /viewlib/extjs/** = anon
                 /viewlib/echarts/** = anon
                 /viewlib/zoomimage/** = anon
                 /jsp/login.jsp =authc
                 /getValidCode = anon
                 /services/* = anon
                 /loginValidateNew = anon
                 /system_menu/menuInfo=anon
                 /keyPair=anon
                 /isFiltrated=anon
                 logout = logout
                 /**=user

             </value>
         </property>
     </bean>

     <bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
         <property name="staticMethod" value="org.apache.shiro.SecurityUtils.setSecurityManager" />
         <property name="arguments" ref="securityManager" />
     </bean>

     <bean id="lifecycleBeanPostProcessor" class="org.apache.shiro.spring.LifecycleBeanPostProcessor" />
 </beans>
上一篇:jquery 学习 总结


下一篇:Android手机摄像头编程入门