设为首页收藏本站
开启辅助访问
切换到宽版

创星网络[分享知识 传递快乐]

 找回密码
 立即注册

QQ登录

只需一步,快速开始

用新浪微博登录

只需一步,快速搞定

搜索
查看: 7170|回复: 0
打印 上一主题 下一主题

单点登录CAS与权限管理框架Shiro集成------Spring项目方式

[复制链接]

我玩的应用:

跳转到指定楼层
楼主
发表于 2012-12-13 20:22:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
spring项目中的集成方式,首先还是配置一个filter
  1. <filter>  
  2.         <filter-name>shiroFilter</filter-name>  
  3.         <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>  
  4.         <init-param>  
  5.             <param-name>targetFilterLifecycle</param-name>  
  6.             <param-value>true</param-value>  
  7.         </init-param>  
  8.     </filter>  
  9.       
  10.     <filter-mapping>  
  11.         <filter-name>shiroFilter</filter-name>  
  12.         <url-pattern>/*</url-pattern>  
  13.     </filter-mapping>  
复制代码
然后就是shiro的spring bean配置,其实就是把之前的shiro.ini的东西配成spring的bean,shiro-config.xml文件如下:
  1. <beans xmlns="http://www.springframework.org/schema/beans"  
  2.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"  
  3.     xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context"  
  4.     xmlns:util="http://www.springframework.org/schema/util"  
  5.     xsi:schemaLocation="  
  6.      http://www.springframework.org/schema/beans   
  7.      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd  
  8.      http://www.springframework.org/schema/context   
  9.      http://www.springframework.org/schema/context/spring-context-3.0.xsd  
  10.      http://www.springframework.org/schema/util  
  11.      http://www.springframework.org/schema/util/spring-util-3.0.xsd"  
  12.     default-lazy-init="true">  
  13.       
  14.     <bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean">  
  15.         <property name="securityManager" ref="securityManager"/>  
  16.         <!-- 设定角色的登录链接,这里为cas登录页面的链接可配置回调地址  -->  
  17.         <property name="loginUrl" value="https://www.cas.com/login?service=http://www.example.com/shiro-cas" />  
  18.          
  19.         <property name="filters">  
  20.             <util:map>  
  21.                 <!-- 添加casFilter到shiroFilter -->  
  22.                 <entry key="casFilter" value-ref="casFilter"/>  
  23.             </util:map>  
  24.         </property>   
  25.         <property name="filterChainDefinitions">  
  26.             <value>                 
  27.                 /shiro-cas = casFilter  
  28.                 /admin/** = roles[ROLE_USER]  
  29.                 /** = anon  
  30.             </value>  
  31.         </property>  
  32.     </bean>  
  33.       
  34.     <bean id="casFilter" class="org.apache.shiro.cas.CasFilter">  
  35.         <!-- 配置验证错误时的失败页面  -->  
  36.         <property name="failureUrl" value="/error.jsp"/>  
  37.     </bean>  
  38.       
  39.     <bean id="casRealm" class="org.apache.shiro.cas.CasRealm">  
  40.         <property name="defaultRoles" value="ROLE_USER"/>      
  41.         <property name="casServerUrlPrefix" value="https://www.cas.com"/>  
  42.         <!-- 客户端的回调地址设置,必须和下面的shiro-cas过滤器拦截的地址一致 -->  
  43.         <property name="casService" value="http://www.example.com/shiro-cas"/>  
  44.     </bean>  
  45.       
  46.     <bean id="securityManager" class="org.apache.shiro.web.mgt.DefaultWebSecurityManager">      
  47.         <property name="realm" ref="casRealm"/>  
  48.         <property name="subjectFactory" ref="casSubjectFactory"/>  
  49.     </bean>  
  50.       
  51.     <!-- 如果要实现cas的remember me的功能,需要用到下面这个bean,并设置到securityManager的subjectFactory中 -->  
  52.     <bean id="casSubjectFactory" class="org.apache.shiro.cas.CasSubjectFactory"/>  
  53.   
  54.       
  55.     <bean id="lifecycleBeanPostProcessor" class="org.apache.shiro.spring.LifecycleBeanPostProcessor"/>  
  56.   
  57.     <bean class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">  
  58.         <property name="staticMethod" value="org.apache.shiro.SecurityUtils.setSecurityManager"/>  
  59.         <property name="arguments" ref="securityManager"/>  
  60.     </bean>  
  61. </beans>
复制代码

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|创星网络 ( 苏ICP备11027519号|网站地图  

GMT+8, 2024-5-2 11:01 , Processed in 0.076968 second(s), 26 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表