`

SpringSecurity3整合CAS实现单点登录

 
阅读更多

http://tonyaction.blog.51cto.com/227462/898173

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> 

大功告成~!

本文出自 “绝缘材料” 博客,请务必保留此出处http://tonyaction.blog.51cto.com/227462/898173

分享到:
评论

相关推荐

    spring boot整合CAS Client实现单点登陆验证的示例

    Spring Boot 整合 CAS Client 实现单点登录验证的示例 Spring Boot 整合 CAS Client 是一种流行的解决方案,用于实现单点登录(Single Sign-On,简称 SSO)。在多个应用系统中,用户只需要登录一次就可以访问所有...

    集成cas实现单点登录认证.zip

    本压缩包"集成cas实现单点登录认证.zip"显然包含了关于如何使用CAS(Central Authentication Service)框架集成SSO认证的资源。下面我们将详细探讨相关的知识点。 1. CAS简介:CAS是耶鲁大学开源的一个Web应用的...

    Spring Security集成CAS客户端实例

    本实例旨在展示如何将Spring Security与CAS结合,实现一个高效的单点登录(Single Sign-On,SSO)解决方案。下面,我们将深入探讨这个集成过程。 首先,Spring Security是Spring框架的一部分,专门用于应用程序的...

    springboot+security+cas集成demo

    "springboot+security+cas集成demo"的目的是展示如何在Spring Boot应用中集成Spring Security和CAS,实现SSO功能。以下是一些关键步骤: 1. **配置CAS客户端**:在Spring Boot应用中,我们需要引入CAS客户端库,...

    SSO单点登录Spring-Security & CAS

    本文详细介绍了如何利用CAS和Spring Security来实现单点登录的功能。通过以上步骤,您可以搭建一个可靠且高效的单点登录系统,为用户提供无缝的多应用访问体验。此外,本文还提供了关于CAS原理和协议的深入解析,...

    springsecurity整合cas全程

    ### Spring Security 整合 CAS 全程详解 #### 一、引言 ##### 1.1 概述 ###### 1.1.1 单点登录介绍 单点登录(Single Sign-On,简称 SSO)是一种流行的解决方案,用于简化用户在多个相互信任的应用系统之间的身份...

    Spring Security OAuth2集成短信验证码登录以及第三方登录

    例如,我们需要集成短信验证码登录、第三方登录、图片验证码登录、微信小程序登录、CAS单点登录等多种登录方式。 为了优雅地集成短信验证码登录及第三方登录,我们需要满足以下要求: 1. 不侵入Spring Security ...

    整合spring+springWebMVC+cas客户端

    CAS(Central Authentication Service)是一种开放源码的单点登录(SSO)系统,常用于企业级应用,确保用户只需要登录一次就能访问所有相互信任的应用系统。CAS客户端则负责与CAS服务器进行交互,验证用户的身份。 ...

    CAS单点登录多语言整合文档+源码

    这个压缩包文件包含的是关于CAS单点登录的多语言整合文档和源码,特别提到了PHP客户端和Java客户端的整合。 首先,我们来深入理解一下CAS的基本工作原理。当用户尝试访问受CAS保护的应用时,会被重定向到CAS服务器...

    Spring Seucrity整合CAS

    在本文中,我们将深入探讨如何将Spring Security与CAS(Central Authentication Service)整合,以便实现单点登录(Single Sign-On, SSO)功能。首先,我们需要了解Spring Security和CAS的基本概念。 **Spring ...

    分布式架构单点登录+授权认证实战 CAS+SpringSecurity视频

    在"19.SpringSecurity集成CAS.avi"中,会讲解如何将CAS与SpringSecurity整合,利用SpringSecurity的强大功能来实现更精细的权限控制和访问决策。 综上所述,本套视频教程通过实践操作,系统地介绍了分布式架构下SSO...

    cas客户端集成单点登录代码3

    CAS(Central Authentication Service)是基于Java的一个开源身份验证框架,常用于实现单点登录(Single Sign-On, SSO)。在本文中,我们将深入探讨如何进行CAS客户端集成,以实现单点登录的登录登出功能。 单点...

    spring boot 实现SSO单点登陆

    spring boot整合spring security 实现SSO单点登陆 完整DEMO. 1、配置本地hosts 127.0.0.1 sso-login 127.0.0.1 sso-resource 127.0.0.1 sso-tmall 127.0.0.1 sso-taobao windows系统的路径在C:\WINDOWS\system...

    spring boot整合Shiro实现单点登录的示例代码

    3. 单点登录:Shiro 已经为我们实现了和CAS的集成,我们只需要加入集成的一些配置就可以实现单点登录。 三、Spring Boot 整合 Shiro 实现单点登录 要实现 Spring Boot 整合 Shiro 实现单点登录,需要加入以下配置...

    CAS单点登录框架整合Spring Security

    CAS 包含两个部分: CAS Server 和 CAS Client ...CAS Client:就是开发过程中的web层, 负责处理对客户端受保护资源的访问请求,需要登录时,重定向到 CAS Server。不需要对这个部分进行过多编码,进行简单配置即可。

    Acegi Security整合CAS实例

    标题和描述均提到了“Acegi Security整合CAS实例”,这涉及到Spring Framework下的Acegi Security模块与CAS(Central Authentication Service)的集成。Acegi Security是Spring框架的一个子项目,旨在为应用提供安全...

    cas-server-client-springsecurity.zip

    CAS(Central Authentication Service)是一种广泛使用的开放源代码身份验证框架,它允许单点登录(SSO)服务在多个应用之间共享。在这个项目中,我们关注的是`cas-server-client-springsecurity.zip`,这是一个针对...

    springboot集成CAS实现单点登录的示例代码

    SpringBoot集成CAS实现单点登录是一项常见的企业级应用技术,旨在提供用户一次登录即可访问多个系统的便捷体验。CAS(Central Authentication Service)是一个开源的身份验证框架,它允许用户在一个集中的服务器上...

    CAS单点登录实例

    总的来说,CAS单点登录实例的搭建涉及多个步骤,从下载和配置必要的jar包,到修改配置文件,再到整合客户端应用,每一个环节都需要对CAS协议和SSO原理有深入理解。同时,安全性和用户体验也是实施过程中不可忽视的...

    SSO单点登录Spring-Security+CAS+使用手册

    单点登录(Single Sign On , 简称 SSO )是目前比较流行的服务于企业业务整合的解决方案之一, SSO 使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。CAS(Central Authentication ...

Global site tag (gtag.js) - Google Analytics