applicationContext-shiro.xml 3.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd"
  5. default-lazy-init="true">
  6. <bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">
  7. <property name="realm" ref="shiroDbRealm" />
  8. <property name="cacheManager" ref="shiroEhcacheManager" />
  9. <property name="sessionManager" ref="sessionManager"></property>
  10. </bean>
  11. <bean id="sessionManager"
  12. class="org.apache.shiro.web.session.mgt.DefaultWebSessionManager">
  13. <property name="sessionDAO" ref="sessionDAO" />
  14. <property name="sessionValidationScheduler" ref="sessionValidationScheduler" />
  15. <property name="globalSessionTimeout" value="86400000" />
  16. <property name="sessionIdCookie" ref="sharesession" />
  17. <property name="sessionValidationSchedulerEnabled" value="true" />
  18. <property name="deleteInvalidSessions" value="true" />
  19. </bean>
  20. <bean id="sharesession" class="org.apache.shiro.web.servlet.SimpleCookie">
  21. <!-- cookie的name,对应的默认是 JSESSIONID -->
  22. <constructor-arg name="name" value="SHAREJSESSIONID_PROJECTS" />
  23. <!-- jsessionId的path为 / 用于多个系统共享jsessionId -->
  24. <property name="path" value="/" />
  25. <property name="httpOnly" value="true" />
  26. <!-- <property name="domain" value=".nrbang.net" /> -->
  27. </bean>
  28. <bean id="sessionDAO" class="com.team.security.MCSessionDAO">
  29. <property name="client" ref="memcachedClient"></property>
  30. </bean>
  31. <bean id="sessionValidationScheduler"
  32. class="org.apache.shiro.session.mgt.ExecutorServiceSessionValidationScheduler">
  33. <property name="interval" value="1800000" />
  34. <property name="sessionManager" ref="sessionManager"></property>
  35. </bean>
  36. <!-- 用户授权信息Cache, 采用EhCache -->
  37. <bean id="shiroEhcacheManager" class="com.team.cache.memcached.MemcachedCacheManager">
  38. <property name="simpleCacheManager" ref="simpleCacheManager"></property>
  39. </bean>
  40. <bean id="simpleCacheManager" class="com.team.cache.memcached.SimpleCacheManagerImpl">
  41. <property name="memcachedClient" ref="memcachedClient"></property>
  42. </bean>
  43. <!-- depends-on="resourceOperateDao,operateDao,resourceDao" -->
  44. <bean id="chainDefinitionSectionMetaSource" class="com.team.security.ChainDefinitionSectionMetaSource">
  45. <property name="filterChainDefinitions">
  46. <value>
  47. /html/**=authc
  48. /register=authc
  49. /login=authc
  50. /logout=logout
  51. </value>
  52. </property>
  53. </bean>
  54. <!-- 自定义的Filter -->
  55. <!-- 自定义的Realm -->
  56. <bean id="shiroDbRealm" class="com.team.security.ShiroDbRealm">
  57. <!-- <property name="client" ref="xMemcachedClient" /> -->
  58. <!-- depends-on="roleDao,resourceOperateDao,operateDao,resourceDao,userDao,xMemcachedClient" -->
  59. </bean>
  60. <!-- Shiro Filter -->
  61. <bean id="shiroFilter" class="com.team.security.EcShiroFilterFactoryBean">
  62. <!-- shiro的核心安全接口 -->
  63. <property name="securityManager" ref="securityManager" />
  64. <!-- 要求登录时的链接 -->
  65. <property name="loginUrl" value="/" />
  66. <!-- 登陆成功后要跳转的连接 -->
  67. <property name="successUrl" value="/index" />
  68. <!-- 未授权时要跳转的连接 -->
  69. <property name="unauthorizedUrl" value="/view/error/error.jsp" />
  70. <!-- shiro连接约束配置,在这里使用自定义的动态获取资源类 -->
  71. <property name="filterChainDefinitionMap" ref="chainDefinitionSectionMetaSource" />
  72. </bean>
  73. <!-- 保证实现了Shiro内部lifecycle函数的bean执行 -->
  74. <bean id="lifecycleBeanPostProcessor" class="org.apache.shiro.spring.LifecycleBeanPostProcessor" />
  75. <bean
  76. class="org.apache.shiro.spring.security.interceptor.AuthorizationAttributeSourceAdvisor">
  77. <property name="securityManager" ref="securityManager" />
  78. </bean>
  79. </beans>