1. 程式人生 > >maven項目中Spring整合Shiro配置文件(示例)

maven項目中Spring整合Shiro配置文件(示例)

-a filter service 管理 .org true 緩存 cti text

<?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:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:jdbc="http://www.springframework.org/schema/jdbc" xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:jpa="http://www.springframework.org/schema/data/jpa" xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/data/jpa
http://www.springframework.org/schema/data/jpa/spring-jpa.xsd">

<!-- 配置Shiro核心Filter -->
<bean id="shiroFilter"
class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
<!-- 安全管理器 -->
<property name="securityManager" ref="securityManager" />
<!-- 未認證,跳轉到哪個頁面 -->
<property name="loginUrl" value="/login.html" />
<!-- 登錄頁面頁面 -->
<property name="successUrl" value="/index.html" />
<!-- 認證後,沒有權限跳轉頁面 -->
<property name="unauthorizedUrl" value="/unauthorized.html" />
<!-- shiro URL控制過濾器規則 -->
<property name="filterChainDefinitions">
<value>
/login.html* = anon
/user_login.action* = anon
/validatecode.jsp* = anon
/css/** = anon
/js/** = anon
/images/** = anon
/services/** = anon
/pages/base/courier.html* = perms[courier:list]
/pages/base/area.html* = roles[base]
/** = authc
</value>
</property>
</bean>

<!-- 安全管理器 -->
<bean id="securityManager"
class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
<property name="realm" ref="bosRealm" />
<property name="cacheManager" ref="shiroCacheManager" />
</bean>

<!-- 配置Realm -->
<bean id="bosRealm" class="cn.lucia.bos.realm.BosRealm">
<!-- 緩存區的名字 就是 ehcache.xml 自定義 cache的name -->
<property name="authorizationCacheName" value="bos" />
</bean>

<bean id="lifecycleBeanPostProcessor"
class="org.apache.shiro.spring.LifecycleBeanPostProcessor"/>

<!-- 開啟shiro註解模式 -->
<bean
class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator"
depends-on="lifecycleBeanPostProcessor" >
<property name="proxyTargetClass" value="true" />
</bean>

<bean class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor">
<property name="securityManager" ref="securityManager"/>
</bean>

</beans>

------------------------------------------------------------------------------------------------------------------------

PS:

1:anon:未認證可以訪問;

2:authc:認證後可以訪問;

3:perms:需要特定權限才能訪問;

4:roles:需要特定的角色才能訪問;

5: /css/** = anon 這裏的/**表示包括子目錄

maven項目中Spring整合Shiro配置文件(示例)