SpringSecurity3整合CAS实现单点登录

国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html
内部邀请码:C8E245J (不写邀请码,没有现金送)
国内私募机构九鼎控股打造,九鼎投资是在全国股份转让系统挂牌的公众公司,股票代码为430719,为中国PE第一股,市值超1000亿元。 

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

 

SpringSecurity本身已经做好了与CAS的集成工作,只需要我们做简单配置就可以了

 

步骤1 spring-cas.xml配置文件内容如下(完整版)

 

  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <beans:beans xmlns="http://www.springframework.org/schema/security" 
  3.     xmlns:context="http://www.springframework.org/schema/context" 
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" 
  5.     xmlns:beans="http://www.springframework.org/schema/beans" 
  6.     xsi:schemaLocation="  http://www.springframework.org/schema/context  http://www.springframework.org/schema/context/spring-context-2.5.xsd  
  7.            http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd    
  8.            http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.0.xsd"  
  9.     default-lazy-init="true"> 
  10.     <context:component-scan base-package="com.itec.core" /> 
  11. <!--SSO --> 
  12.     <http auto-config="false" entry-point-ref="casEntryPoint" servlet-api-provision="true">    
  13.         <intercept-url pattern="/login.do" filters="none" /> 
  14.         <intercept-url pattern="/image.do" filters="none" /> 
  15.         <intercept-url pattern="/admin/*.do*" access="ROLE_LOGIN" />   
  16.         <!-- logout-success-url="/login.html" -->    
  17. <!--        <logout logout-url="/login.do" success-handler-ref="casLogoutSuccessHandler"/>   --> 
  18.         <custom-filter ref="requestSingleLogoutFilter" before="LOGOUT_FILTER" />   
  19.         <custom-filter position="FORM_LOGIN_FILTER" ref="casFilter"/>    
  20.         <custom-filter ref="singleLogoutFilter" before="CAS_FILTER" /> 
  21.     </http>   
  22.  
  23.     <beans:bean id="casEntryPoint"  class="org.springframework.security.cas.web.CasAuthenticationEntryPoint">    
  24.         <beans:property name="loginUrl" value="http://172.19.50.21:9083/HASLSSO/login"/>    
  25.         <beans:property name="serviceProperties" ref="serviceProperties"/>    
  26.     </beans:bean> 
  27.     <beans:bean id="serviceProperties"  class="org.springframework.security.cas.ServiceProperties">    
  28.         <beans:property name="service"  value="http://172.19.4.225:8080/HACMS/j_spring_cas_security_check"/>    
  29.         <beans:property name="sendRenew" value="false"/>    
  30.     </beans:bean> 
  31.  
  32.     <beans:bean id="casFilter"  class="org.springframework.security.cas.web.CasAuthenticationFilter">    
  33.         <beans:property name="authenticationManager" ref="authenticationManager"/>    
  34.     </beans:bean>    
  35.         
  36.     <authentication-manager alias="authenticationManager">    
  37.         <authentication-provider ref="casAuthenticationProvider"/>   
  38.     </authentication-manager>    
  39.         
  40.     <beans:bean id="casAuthenticationUserDetailsService" class="org.springframework.security.core.userdetails.UserDetailsByNameServiceWrapper">    
  41.         <beans:property name="userDetailsService" >    
  42.             <beans:ref bean="userDetailsManager" />    
  43.         </beans:property>    
  44.     </beans:bean>    
  45.        
  46.     <beans:bean id="casAuthenticationProvider"    
  47.             class="org.springframework.security.cas.authentication.CasAuthenticationProvider">    
  48.         <beans:property name="authenticationUserDetailsService" ref="casAuthenticationUserDetailsService"/>    
  49.         <beans:property name="serviceProperties" ref="serviceProperties" />    
  50.         <beans:property name="ticketValidator">    
  51.             <beans:bean class="org.jasig.cas.client.validation.Cas20ServiceTicketValidator">    
  52.                 <beans:constructor-arg index="0" value="http://172.19.50.21:9083/HASLSSO" />    
  53.             </beans:bean>    
  54.         </beans:property>    
  55.         <beans:property name="key" value="an_id_for_this_auth_provider_only"/>    
  56.     </beans:bean>    
  57.  
  58.     <!-- 注销客户端 --> 
  59.     <beans:bean id="singleLogoutFilter" class="org.jasig.cas.client.session.SingleSignOutFilter" /> 
  60.  
  61.     <!-- 注销服务器端 --> 
  62.     <beans:bean id="requestSingleLogoutFilter" 
  63.     class="org.springframework.security.web.authentication.logout.LogoutFilter"> 
  64.     <beans:constructor-arg 
  65.     value="http://172.19.50.21:9083/HASLSSO/logout" /> 
  66.     <beans:constructor-arg> 
  67.     <beans:bean 
  68.     class="org.springframework.security.web.authentication.logout.SecurityContextLogoutHandler"/> 
  69.     </beans:constructor-arg> 
  70.     <beans:property name="filterProcessesUrl" value="/j_spring_cas_security_logout" /> 
  71.     </beans:bean> 
  72.  
  73. </beans:beans>    

 

 

步骤2 之前的UserDetailsManager不需要改任何代码

 

  1. @Service 
  2. public class UserDetailsManager implements UserDetailsService { 

步骤3 web.xml需要修改一点东西,不加载Security的配置文件就行了

 

  1. <context-param> 
  2.         <param-name>contextConfigLocation</param-name> 
  3.         <!-- 使用工程本身验证 --> 
  4.         <param-value>/WEB-INF/spring-config.xml,/WEB-INF/spring-freemarker.xml,/WEB-INF/spring-jpa.xml,/WEB-INF/spring-security.xml</param-value> 
  5.         <!-- 使用 SSO 验证 --> 
  6. <!--        <param-value>/WEB-INF/spring-config.xml,/WEB-INF/spring-freemarker.xml,/WEB-INF/spring-jpa.xml,/WEB-INF/spring-cas.xml</param-value> --> 
  7.     </context-param> 

大功告成~!

时间: 2024-09-28 06:55:13

SpringSecurity3整合CAS实现单点登录的相关文章

CAS解决单点登录SSO

关于CAS很多的原理和基础的配置启动,网上是很多的,我更多是结合我的实践和心得.需要了解CAS的原理,认证协议,认证流程,可以参考以下文章. 让CAS支持客户端自定义登陆页面--客户端篇 CAS原理与配置-基于CAS的单点登陆的研究(上) 服务端配置 CAS单点登陆部署 CAS配置手册 CAS单点登录配置 背景 单点登录(SSO)是企业开发的重要问题,在我的毕设项目中,由于要和系统其他开发模块共用用户认证模块,方便共享用户资源,所以需要一个好的SSO解决方案. 一般SSO的实现机制有两种:基于s

Liferay集成CAS实现单点登录与应用系统集成

Liferay 门户介绍 Liferay 是一个基于 J2EE 架构的完整的门户解决方案,使用了 EJB.JMS 等技术,前台界面 使用了 Struts MVC 框架.模板技术等一些开源的主流技术,基于 XML 的 portlet 配置文件可以自由地动态扩展,使用了 Web Services 来支持一些远程信息的获取,使用 Lucene 实现全文检索功能. 主要特点: 采用最先进的技术 Java, EJB, JMS, SOAP, XML. 提供多种单点登陆接口,如 CAS,LDAP, OpenI

spring-Springsecurity cas单点登录,循环重定向问题

问题描述 Springsecurity cas单点登录,循环重定向问题 最近在弄springsecurity+cas实现单点登录,但配置完成测试,去发现在cas server端登录成功之后,竟出现了循环重定向问题,我springsecurity配置如下: <?xml version="1.0" encoding="UTF-8" ?> <beans xmlns="http://www.springframework.org/schema/b

采用CAS原理构建单点登录

企业的信息化过程是一个循序渐进的过程,在企业各个业务网站逐步建设的过程中,根据各种业务信息水平的需要构建了相应的应用系统,由于这些应用系统一般是在不同的时期开发完成的,各应用系统由于功能侧重.设计方法和开发技术都有所不同,也就形成了各自独立的用户库和用户认证体系.随着新的业务网站不断的增加,用户在每个应用系统中都有独立的账号,这样就造成在访问不同的应用系统时,需要记录对应的用户名和密码,多个用户名密码极易记混,如果忘记或记错了某一个业务网站的用户名或密码就无法进行登录,耽误工作,影响工作效率,随

CAS单点登录(SSO)完整教程

CAS单点登录(SSO)完整教程(2012-02-01更新) 一.教程说明 前言 教程目的:从头到尾细细道来单点登录服务器及客户端应用的每个步骤 单点登录(SSO):请看百科解释猛击这里打开 本教程使用的SSO服务器是Yelu大学研发的CAS(Central Authentication Server), 官网:http://www.jasig.org/cas 本教程环境: Tomcat6.0.29 JDK6 CAS Server版本:cas-server-3.4.3.1.cas-server-

java-关于CAS单点登录的用户认证

问题描述 关于CAS单点登录的用户认证 现有多个系统web1,web2,web3... 用户张三,在web1里用户名密码是user1/123,在web2里用户名密码是zhangsan/456,在web3里用户名密码是abc/789-- 这些多个系统的用户名密码存放在不同数据库中,但是每个数据库里都有"工号"这个字段,且为必填项. 现在将这多个系统用CAS做单点登录,这多个数据库如何通过"工号"这个字段统一? 刚看到的一个思路: 单对多模式:一个用户使用不同凭证登录不

单点登录之CAS SSO从入门到精通(第二天)

啊......沙滩,阳光,笔记本往膝上一搁,开始写博客.第一次没在国内过年,避开了吃吃吃,感觉真好,人也觉得轻松多了. 上次说到了CAS SSO最基本的使用方法,并且我们结合了一个数据库表来实现了我们自定义用户名和密码的单点登录功能.今天我们将要开始把我们的CAS SSO一步步往更深更专业的层次推进下去,我们先来看一下CAS SSO在结合WINDOWS AD域(此处我们使用open-ldap)来实现这个WINDOWS AD域的单点登录.即如何把我们的单点登录和巳有域帐号进行一下结合. 安装ope

搭建Jasig CAS中央认证服务实现单点登录——搭建Tomcat并实现SSL安全连接

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://dgd2010.blog.51cto.com/1539422/1167444 预期的工作任务: 实现CAS(CAS采用Jasig CAS)单点登录搭建,开发api以实现java.php..net等单点登录接口:实现数据库.LDAP身份认证对接. (一)平台(Linux和Windows都能实现): 1.Windows Server 2008 R2(Windows 2000以上即可)

CAS单点登录

问题描述 最近做了一个项目,其中有一个模块需要实现的是电话录音功能.所用设备是申瓯通讯的电话录音盒,所有电话都通过此设备,设备里面有他自己的一套管理界面,可以进行电话录音的查询试听下载等.本项目中想实现的电话录音功能要和设备中的管理界面的功能一样,自己重新开发太麻烦.而只简单的做个连接的话又要二次登录,而且登录进去后界面也和本项目的风格不一样,所以现在就想到了CAS单点登录的实现.由于以前没接触过关于单点登录的.在网上找了些源码及小例子.虽然都配置成功了.但又出现个问题,想特此请教各位.问题:在