applicationContext-security.xml

本文介绍了一个使用Spring框架配置Apache Shiro与CAS单点登录系统的示例。详细展示了ShiroFilterFactoryBean、CasFilter和CasRealm等组件的具体配置方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<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:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="
     http://www.springframework.org/schema/beans 
     http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
     http://www.springframework.org/schema/context 
     http://www.springframework.org/schema/context/spring-context-3.1.xsd
     http://www.springframework.org/schema/util
     http://www.springframework.org/schema/util/spring-util-3.1.xsd"
default-lazy-init="true">


<bean id="securityFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">
<property name="securityManager" ref="securityManager" />
<property name="loginUrl"
value="${security.casServer}/casServer/login?service=${security.local.project}/cas" />
<property name="successUrl" value="/index.html" />
<property name="filters">
<util:map>
<entry key="casFilter" value-ref="casFilter" />
<entry key="casLogout" value-ref="casLogout" />
</util:map>
</property>
<property name="filterChainDefinitions">
<value>
   /cas=casFilter
   /logout=casLogout
   /service/public = anon
   /**=roles[ROLE_USER]
</value>
</property>
</bean>
   <bean id="casLogout" class="org.apache.shiro.web.filter.authc.LogoutFilter">
<property name="redirectUrl" value="${security.casServer}/casServer/logout?service=${security.local.project}" />
</bean>


<bean id="casFilter" class="org.apache.shiro.cas.CasFilter">
<property name="failureUrl" value="/WEB-INF/error/500.jsp" />
</bean>
<bean id="casRealm" class="com.creditcities.framework.security.CasRealm">
<property name="defaultRoles" value="ROLE_USER" />
<property name="roleAttributeNames" value="roles"/>
<property name="cacheManager" ref="shirocacheManager"/>
<property name="authorizationCacheName" value="shiro-activeRealmCache"/>
<property name="permissionAttributeNames" value="permissions"/>
<property name="casServerUrlPrefix" value="${security.casServer}/casServer" />
<property name="casService" value="${security.local.project}/cas" />
</bean>
<bean id="memcachedClientFactoryBean" class="net.spy.memcached.spring.MemcachedClientFactoryBean">
<property name="servers" value="${memcached.url}" />
<property name="protocol" value="TEXT" />
<property name="locatorType" value="CONSISTENT" />
<property name="opTimeout" value="1000" />
</bean>

<bean id="spyMemcachedClient" class="com.creditcities.framework.cache.SpyMemcachedClient">
<property name="memcachedClient" ref="memcachedClientFactoryBean"/>
</bean>
  <bean id="shirocacheManager" class="org.apache.shiro.cache.ehcache.EhCacheManager">
  <property name="cacheManagerConfigFile" value="classpath:/ehcache.xml" />
  </bean>
   <!--
<bean id="shirocacheManager" class="com.creditcities.framework.security.MemcachedManager">
<property name="memcachedClient" ref="memcachedClientFactoryBean"/>
<property name="expiredTime" value="1800" />
</bean>
    -->
<bean id="sessionManager" class="org.apache.shiro.web.session.mgt.DefaultWebSessionManager">
          <property name="sessionDAO" ref="sessionDAO"/>
          <property name="cacheManager" ref="shirocacheManager"/>
          <property name="sessionListeners">
                 <list>
                     <bean class="com.creditcities.framework.security.SessionListener"></bean> 
                 </list> 
      </property>
     </bean>
 
    <bean id="sessionDAO" class="org.apache.shiro.session.mgt.eis.EnterpriseCacheSessionDAO">
         <property name="cacheManager" ref="shirocacheManager"/>
     </bean>
  
<bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
<property name="sessionManager" ref="sessionManager"/> 
<property name="sessionMode" value="http" />
<property name="realm" ref="casRealm" />
<property name="subjectFactory" ref="casSubjectFactory" />
</bean>
<bean id="casSubjectFactory" class="org.apache.shiro.cas.CasSubjectFactory" />
<bean id="lifecycleBeanPostProcessor" class="org.apache.shiro.spring.LifecycleBeanPostProcessor" />
<bean class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor">
    <property name="securityManager" ref="securityManager"/>
    </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="securityMethodMatcherPointcutAdvisor"
class="com.creditcities.framework.security.SecurityMethodPointcutAdvisor">
</bean>

</beans>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值