`
cobo85
  • 浏览: 116925 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

基于CAS的SSO实现

    博客分类:
  • J2EE
阅读更多

       其实网上这样的资料google一下一大把,本来是不想再做重复无谓的东西,但是实在是忍不住的发几句牢骚,写东西是给别人分享经验的,需要好好的去伪存真。软件在不断的升级,用法也会不断的改进,不要一直用老版本的方法在新版本上面使用,不但对别人帮助不大,反而会耽误时间,还不如直接去官网翻英文文档,即便是痛苦些,也比拿到过时的东西好呀,看看网上的实现大部分都是那个2.x和3.x的cas混用,但是这样自己不觉得不合理么,现在JASIG上面根本没有yelu的包,在配置客户端的时候还要配置yelu什么的,不说废话了,把新版本的用法贴出来,希望其他童靴不要再和俺一样走弯路。

 

     搭建环境:

         服务器端:cas-server-webapp-3.4.2.war 

         客户端:cas-client-3.1.10(做简单的演示只需要modules下的cas-client-core-3.1.10.jar和commons-                    logging-1.1.jar就行了,不需要2.x下面的东西)

        JDK:jdk1.6.0_10

        tomcat:apache-tomcat-6.0.26

 

  

    首先、如果启用https那么就先用keytool生成下证书,导入到tomcat所用的JDK证书中,这些资料很多就不做详细说明了,只把可能遇到的问题写下

   1、keytool 不支持有空格的文件路径,特别是在导入证书的时候要注意

   2、导入证书的时候密码是默认的changit而不是自己证书的密码

   3、tomcat5.x和tomcat6.x启用SSL的方式不一样

       6.x的方式(单项认证)

   

<Connector protocol="org.apache.coyote.http11.Http11Protocol"     
                     port="8443" maxHttpHeaderSize="8192"   
           maxThreads="150" minSpareThreads="25" maxSpareThreads="75"   
           enableLookups="false" disableUploadTimeout="true"   
           acceptCount="100" scheme="https" secure="true"   
           clientAuth="false" sslProtocol="TLS" SSLEnabled="true"                    
           keystoreFile="${keystore_path/${name}.keystore}"     
           keystorePass="*****"/>

 

其次、搭建CAS服务器,这个没什么特别的东西,把war放到webapp中就行了

 

最后、客户端的搭建,

       1、把cas-client-core-3.1.10.jar和commons-logging-1.1.jar放到应用系统的lib中。

      2、在web.xml增加以下配置:

       

<context-param>  
            <param-name>serverName</param-name>  
            <param-value>${应用系统地址}:${端口}</param-value>  
</context-param>


	<filter>  
        <filter-name>CAS Single Sign Out Filter</filter-name>  
        <filter-class>  
            org.jasig.cas.client.session.SingleSignOutFilter   
        </filter-class>  
    </filter>  
    <filter-mapping>  
        <filter-name>CAS Single Sign Out Filter</filter-name>  
        <url-pattern>/*</url-pattern>  
    </filter-mapping>  
    <listener>  
        <listener-class>  
            org.jasig.cas.client.session.SingleSignOutHttpSessionListener   
        </listener-class>  
    </listener>  
    <filter>  
        <filter-name>CAS Authentication Filter</filter-name>  
        <filter-class>  
            org.jasig.cas.client.authentication.AuthenticationFilter   
        </filter-class>  
        <init-param>  
            <param-name>casServerLoginUrl</param-name>  
            <param-value>https://caoshuaibiao:8443/cas342/login</param-value>  
        </init-param>  
    </filter>  
    <filter>  
        <filter-name>CAS Validation Filter</filter-name>  
        <filter-class>  
            org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter   
        </filter-class>  
        <init-param>  
            <param-name>casServerUrlPrefix</param-name>  
            <param-value>https://caoshuaibiao:8443/cas342</param-value>  
        </init-param>  
    </filter>  
  
    <filter>  
        <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>  
        <filter-class>  
            org.jasig.cas.client.util.HttpServletRequestWrapperFilter   
        </filter-class>  
    </filter>  
    <filter>  
        <filter-name>CAS Assertion Thread Local Filter</filter-name>  
        <filter-class>  
            org.jasig.cas.client.util.AssertionThreadLocalFilter   
        </filter-class>  
    </filter>  
    <filter-mapping>  
        <filter-name>CAS Authentication Filter</filter-name>  
        <url-pattern>/*</url-pattern>  
    </filter-mapping>  
    <filter-mapping>  
        <filter-name>CAS Validation Filter</filter-name>  
        <url-pattern>/*</url-pattern>  
    </filter-mapping>  
    <filter-mapping>  
        <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>  
        <url-pattern>/*</url-pattern>  
    </filter-mapping>  
    <filter-mapping>  
        <filter-name>CAS Assertion Thread Local Filter</filter-name>  
        <url-pattern>/*</url-pattern>  
    </filter-mapping> 

 3、应用中得到通过CAS认证用户的方法

 

   

<%@ page import="org.jasig.cas.client.authentication.AttributePrincipal"%>
<%
AttributePrincipal principal = (AttributePrincipal)request.getUserPrincipal();   
	String username = principal.getName();   
%>

            

 

 

 

 

     

分享到:
评论
2 楼 blaiu 2011-04-13  
很不错,希望有更好的原创。
1 楼 yinbinhome 2011-03-13  
你很负责任啊!顶你!还是原创的好啊!
转载是挺害人的啊!哈哈
我给你发私信了,加我聊聊!

相关推荐

    Liferay的CAS SSO实现

    Liferay是一款功能强大的开源企业级门户平台...总之,Liferay的CAS SSO实现是通过集成CAS服务器和配置Liferay的安全策略来完成的,这一功能对于多应用环境的企业级门户至关重要,它可以提供便捷、安全的用户登录体验。

    CAS SSO

    由于实际博客内容不可用,以上内容基于CAS SSO的一般知识进行概述。实际阅读博客可能提供更具体的实现细节、示例代码或解决特定问题的策略。对于希望深入了解或使用CAS SSO的人来说,这篇博客可能会是一个有价值的...

    CAS实现sso单点登录原理

    SSO实现模式的原则: 1. 所有的认证登录都在SSO认证中心进行。 2. SSO认证中心通过一些方法来告诉Web应用当前访问用户究竟是不是已通过认证的用户。 3. SSO认证中心和所有的Web应用建立一种信任关系,也就是说Web...

    基于Tomcat6的CAS SSO配置

    基于Tomcat6的CAS SSO配置涉及的主要知识点包括SSO(Single Sign-On,单点登录)、CAS(Central Authentication Service,中心认证服务)、SSL(Secure Socket Layer,安全套接层)以及Tomcat服务器的配置。...

    Weblogic使用YALE(耶鲁)CAS实现SSO单点登录 的方法.doc

    Weblogic 使用 YALE CAS 实现 SSO 单点登录的方法 一、Yale CAS 简介 Yale CAS 是耶鲁大学开发的一种开源的单点登录(SSO)解决方案,提供了一个通用的身份验证框架,允许用户使用单个身份验证来访问多个应用程序。...

    Yale CAS SSO JAVA Client

    总之,Yale CAS SSO JAVA Client是实现基于CAS的单点登录解决方案的重要工具,它提供了方便的API和配置选项,帮助Java开发者在不牺牲安全性的前提下,为用户提供无缝的登录体验。通过深入理解和合理利用这些资源,...

    cas sso server page

    CAS(Central Authentication Service)是基于Java的开源身份验证框架,主要用于实现单一登录(Single Sign-On,简称SSO)。SSO允许用户在访问多个应用系统时只需登录一次,从而提高用户体验和安全性。在这个“cas ...

    cas sso学习心得

    总的来说,CAS SSO提供了灵活的配置和扩展性,可以根据实际需求调整服务器和客户端的配置,以实现安全、高效的单点登录解决方案。同时,它也允许开发者通过定制处理程序和解析器来获取并处理多样化的用户信息。学习...

    基于cas的sso 单点登录tomcat配置过程

    在基于CAS的SSO实现中,Tomcat作为应用服务器,通常会与CAS服务器进行集成,以实现用户统一的身份验证。以下是对整个配置过程的详细说明: 1. **环境准备**:首先确保你的开发环境已经安装了Java运行环境(JRE)和...

    CAS SSO 原理

    CAS(Central Authentication Service)是由Yale大学发起的开源项目,它是实现SSO的一种常见解决方案,尤其在Java项目中广泛应用。据称,大约80%的开源Web SSO项目选择了CAS。CAS的设计理念是简单高效且安全,其核心...

    CAS-SSO源码包(两个版本)

    CAS(Central Authentication Service)是基于Java的开源身份验证框架,主要用于实现单一登录(Single Sign-On, SSO)。SSO允许用户在一次登录后访问多个应用系统,而无需为每个系统分别进行认证,大大提升了用户...

    SSO学习有CAS SSO配置.doc

    此外,理解和掌握SSL、PKI(Public Key Infrastructure)以及跨域、跨语言的SSO实现策略也是必不可少的。 总之,CAS SSO提供了一种标准的、可扩展的身份验证方法,适用于需要统一用户管理的企业级环境。正确配置和...

    cas sso单点登录

    "入门.docx"可能是一个包含CAS SSO实现基础教程的文档,通常涵盖了以下内容: 1. CAS架构:解释CAS服务器、客户端和服务应用之间的关系。 2. 安装与配置:如何下载和部署CAS服务器,配置服务器端的设置。 3. 应用...

    CAS 框架 SSO的实现.pdf

    ### CAS 框架 SSO 实现的关键知识点 ...通过以上对CAS框架SSO实现的详细介绍,我们可以看到CAS不仅提供了一套完整的单点登录解决方案,还非常注重安全性设计。这使得CAS成为企业级应用中实现SSO的首选方案之一。

    cas配置实现sso登录

    单点登录(Single Sign-On,简称SSO)...总之,通过正确配置`CAS.txt`文件,设置`web.xml`中的CAS过滤器,以及正确引用CAS服务器的URL和服务ID,你可以实现基于CAS的SSO登录。这将提升用户体验,同时简化身份验证管理。

    SSO CAS Server 二次开发说明文档

    ### SSO CAS Server 二次开发说明文档 #### 环境搭建 为了便于进行二次开发,推荐使用Maven overlays特性来构建开发环境。这样可以利用最新版本的资源文件覆盖现有WAR包中的文件,无需手动导入整个`cas-server-...

    CAS_LDAP.rar_CAS SSO_cas ldap_cas openldap_cas_ldap_soa和sso

    在这个场景下,`CAS_LDAP.rar` 文件集合提供了一个关于如何将CAS与OpenLDAP集成以实现SSO和SOA的实践指南。 **CAS (Central Authentication Service)** CAS 是一个开源的、基于Web的单一登录协议服务器,它允许...

    架构师熟悉cas技术方案实现sso

    1. **共享Cookies**:早期的SSO实现方式,依赖于同域下的Cookies共享机制。存在灵活性差和安全隐患的问题,已被弃用。 2. **Broker-based(基于经纪人)**:利用集中式的认证服务器作为中间人,为其他应用提供认证...

    CAS--SSO单点用到的jar包

    CAS(Central Authentication Service)是一种广泛使用的开放源代码的单点登录(Single Sign-On,简称SSO)框架。SSO允许用户在访问多个应用系统...通过理解这些库的作用,我们可以更好地设计和维护基于CAS的SSO系统。

Global site tag (gtag.js) - Google Analytics