`
rocye
  • 浏览: 119928 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

CAS单点登录HTTP配置

阅读更多

本文目录:

 

  • 一、概述
  • 二、演示环境
  • 三、部署CAS-Server相关的Tomcat
  • 四、部署CAS-Client相关的Tomcat
  • 五、测试验证SSO

 一、概述

 最近在研究Sina单点登录,网上有博主分析了它的登录机制,并且还给出了仿SinaAjax异步单点登录的思路及代码片断,因为第一次接触CAS,没办法一下子构建自己想要的异步单点登录项目,所以开始在网上不停的查找相关的文章,由于网上大多数的CAS配置都是基于HTTPS的,需要生成证书,导入证书到jre中,但是Sina的单点登录却不是基于HTTPS的,所以此文的目的是对CAS单点登录HTTP配置进行测试。

 

CAS的官网:https://www.apereo.org/cas 

参考文章:http://www.micmiu.com/enterprise-app/sso/sso-cas-sample/ 

        http://blog.csdn.net/ycyk_168/article/details/18668951

   

二、测试环境

 

本文测试过程在同一个机器上的(也可以在三台实体机器或者三个的虚拟机上),环境如下:

  • Windows7 64
  • JDK 1.6.0_10
  • Tomcat 6.0.43
  • CAS-server-4.0.0CAS-client-3.3.3

 

根据演示需求,用修改hosts 文件的方法添加域名最简单方便(这个非常重要),在文件 C:\Windows\System32\drivers\etc\hosts 文件中添加三条:

 #test CAS SSO Start

 127.0.0.1      sso.rocye.com

 127.0.0.1      appone.rocye.com

 127.0.0.1      apptwo.rocye.com

 #test CAS SSO End

 

  • sso.rocye.com  =>> 对应部署cas servertomcat,这个虚拟域名还用于证书生成
  • appone.rocye.com  =>>  对应部署app1 tomcat
  • apptwo.rocye.com   =>> 对应部署app2 tomcat

 三、部署CAS-Server相关的Tomcat

 3.1 解压apache-tomcat-6.0.43.zip并重命名后的路径为 e:\sso\tomcat-cas

  

 3.2 下载官网最新版cas-server-4.0.0-release.zip 为例,解压提取cas-server-4.0.0\modules\ cas-server-webapp-4.0.0.war文件,把文件复制到 e:\sso\tomcat-cas\webapps\ 目下,并重命名为:cas.war启动tomcat-cas,得到项目发布文件夹cas

  

 3.3 修改WEB-INFO\deployerConfigContext.xml加入p:requireSecure="false"

 <bean id="proxyAuthenticationHandler"

 class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler"

 p:httpClient-ref="httpClient" p:requireSecure="false" />

 

 3.4 修改WEB-INF\spring-configuration\ticketGrantingTicketCookieGenerator.xml,修改p:cookieSecure="false"

<bean id="ticketGrantingTicketCookieGenerator"

class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator"

p:cookieSecure="false"

p:cookieMaxAge="-1"

p:cookieName="CASTGC"

p:cookiePath="/cas" />

  

3.5 修改WEB-INF\spring-configuration\warnCookieGenerator.xml,修改p:cookieSecure="false"

 <bean id="warnCookieGenerator"

 class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator"

 p:cookieSecure="false"

 p:cookieMaxAge="-1"

 p:cookieName="CASPRIVACY"

 p:cookiePath="/cas" />

   

3.6 重新启动Tomcat,在地址栏输入: http://sso.rocye.com:8080/cas/login回车:

 



 

 输入登录名:casuser密码:Mellon  得到登录成功页面:

 


  

这里不用管登录页上面的红色提示信息:“Non-secure Connection…”,这只是这个登录页面对于URL不是https开头的一个验证提示信息,继续登录得到“登录成功”表示已经部署成功。

  

四、部署CAS-Server相关的Tomcat

 4.1 解压apache-tomcat-6.0.43.zip并重命名后的路径为:e:\sso\tomcat-app1,修改conf下的配置文件server.xml如下:

 <Server port="18005" shutdown="SHUTDOWN">

 

 <Connector port="18080" protocol="HTTP/1.1"

                connectionTimeout="20000"

                redirectPort="18443" />

 <Connector port="18009" protocol="AJP/1.3" redirectPort="18443" />

  

4.2 以官网最新版cas-client-3.3.3-release.zip为例,解压提取cas-client-3.3.3\modules\ cas-client-core-3.3.3.jar文件,以tomcat默认自带的 webapps\examples 作为演示的简单web项目,把jar文件复制到 webapps\ examples项目的lib文件夹下,同时还要复制slf4j-api-1.7.1.jar

  

4.3 tomcat-app1\webapps\examples\WEB-INF\web.xml 文件中增加如下内容:

  

<!-- ======================== 单点登录开始 ======================== --> 
<!-- 用于单点退出,该过滤器用于实现单点登出功能,可选配置--> 
<listener>  
    <listener-class>org.jasig.cas.client.session.SingleSignOutHttpSessionListener</listener-class>  
</listener>  

<!-- 该过滤器用于实现单点登出功能,可选配置。 --> 
<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>      

<filter>  
    <filter-name>CAS Filter</filter-name>  
    <filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>  
    <init-param>  
        <param-name>casServerLoginUrl</param-name>  
        <param-value>http://sso.rocye.com:8080/cas/login</param-value>  
    </init-param>  
    <init-param>  
        <param-name>serverName</param-name>  
        <param-value>http://appone.rocye.com:18080</param-value>  
   </init-param>  
</filter>  

<filter-mapping>  
    <filter-name>CAS Filter</filter-name>  
    <url-pattern>/*</url-pattern>  
</filter-mapping>  

<!-- 该过滤器负责对Ticket的校验工作,必须启用它 --> 
<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>http://sso.rocye.com:8080/cas</param-value>  
    </init-param>  
    <init-param>  
        <param-name>serverName</param-name>  
        <param-value>http://appone.rocye.com:18080</param-value>  
    </init-param>  
</filter>  

<filter-mapping>  
    <filter-name>CAS Validation Filter</filter-name>  
    <url-pattern>/*</url-pattern>  
</filter-mapping>     

<!--  
    该过滤器负责实现HttpServletRequest请求的包裹,  
    比如允许开发者通过HttpServletRequest的getRemoteUser()方法获得SSO登录用户的登录名,可选配置。  
--> 
<filter>  
    <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>  
    <filter-class>  
        org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class>  
</filter>  

<filter-mapping>  
    <filter-name>CAS HttpServletRequest Wrapper Filter</filter-name>  
    <url-pattern>/*</url-pattern>  
</filter-mapping>    

<!--  
该过滤器使得开发者可以通过org.jasig.cas.client.util.AssertionHolder来获取用户的登录名。  
比如AssertionHolder.getAssertion().getPrincipal().getName()。  
--> 
<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 Assertion Thread Local Filter</filter-name>  
    <url-pattern>/*</url-pattern>  
</filter-mapping>      
<!-- ======================== 单点登录结束 ======================== -->

  

4.4 按照上面的4.1-4.3步骤得到tomcat-app2,相应端口改成28080…配置文件添加的单点登录配置也要对应修改好。

  

五、测试验证SSO

 预期流程:打开app1 url —-> 跳转cas server 验证 —-> 显示app1的应用 —-> 打开app2 url —-> 显示app2应用 —-> 注销cas server —-> 打开app1/app2 url —-> 重新跳转到cas server 验证。

 启动之前配置好的三个Tomcat,分别为:tomcat-castomcat-app1tomcat-app2

 

打开浏览器输入链接地址:http://appone.rocye.com:18080/examples/servlets/servlet/HelloWorldExample它会跳转到登录页面:

 

 

输入登录名:casuser密码:Mellon  得到下面的页面:

 

 再在地址栏输入app2的地址:http://apptwo.rocye.com:28080/examples/servlets/servlet/HelloWorldExample它会直接进入下面的页面,不需要再登录:

 

 紧接着打开一个新Tab页输入:http://sso.rocye.com:8080/cas/logout

 

 

再次打开之前访问的两个页面:

 http://appone.rocye.com:18080/examples/servlets/servlet/HelloWorldExample

 http://apptwo.rocye.com:28080/examples/servlets/servlet/HelloWorldExample

 都会直接跳到登录页,表示成功。

 

 本文到此已结束,下一步将会整合此文中的功能到Spring+Struts+Mybatis框架上,并升级为ajax异步的方式。

  • 大小: 90.2 KB
  • 大小: 45.4 KB
  • 大小: 141.4 KB
  • 大小: 31.6 KB
  • 大小: 30.6 KB
  • 大小: 19.6 KB
分享到:
评论

相关推荐

    CAS单点登录服务器配置详情

    ### CAS单点登录服务器配置详解 #### 一、CAS单点登录概述 CAS(Central Authentication Service)是一种开放源代码的单点登录协议和服务框架,它为Web应用提供了一种简化了的身份验证流程。通过CAS,用户只需要在...

    Spring Security 3 与 CAS单点登录配置.doc

    Spring Security 3 与 CAS 单点登录配置 Spring Security 3 是一个基于 Java 的安全框架,提供了灵活的身份验证、授权和访问控制功能。CAS(Central Authentication Service)是一种流行的单点登录协议,允许用户...

    CAS单点登录配置全过程

    ### CAS单点登录配置全过程详解 #### 一、前言 CAS(Central Authentication Service)是一种开放源代码的单点登录(Single Sign-On, SSO)协议和服务实现,它允许用户在一个应用登录之后无需再次登录即可访问其他...

    cas单点登录

    总之,CAS单点登录系统提供了统一的身份验证入口,简化了用户登录过程,提高了用户体验。通过理解和实践CAS Server的配置以及客户端的集成,开发者可以有效地在自己的应用环境中实现单点登录功能。

    用cas实现mantis单点登录和登出

    2. **配置 CAS 客户端**:Mantis 需要集成 CAS 客户端库来实现单点登录。本文档采用的是 PHP 版本的 CAS 客户端。 ##### 第二步:Mantis 程序修改 1. **添加 CAS 客户端文件夹**: - 在 Mantis 根目录下新建一个...

    CAS单点登录HTTP协议版本配置指南

    ### CAS单点登录HTTP协议版本配置指南 #### 一、CAS版本及所需组件 本配置指南涉及的CAS版本如下: - **服务端**:cas-server-3.4.7 - **客户端**:cas-client-3.2.0 对于服务端而言,仅需解压`cas-server-webapp...

    cas单点登录服务端

    CAS(Central Authentication ...总的来说,CAS单点登录服务端的部署涉及了Web应用的部署、应用服务器的管理、服务定义配置、用户认证集成以及安全性考量等多个方面,是构建安全、便捷的多应用系统环境的关键组件。

    Jeecg配置单点登录 登录验证完整代码

    总之,Jeecg配置单点登录是一个涉及CAS服务器设置、客户端集成、登录验证等多个环节的过程。正确配置后,能够提升用户体验,同时也强化了系统的安全性。通过学习和实践,你可以掌握这一重要技能,为自己的Java应用...

    Spring Security 3 与 CAS单点登录配置-Server

    标题 "Spring Security 3 与 CAS 单点登录配置 - Server" 涉及到的是在企业级应用中实现安全访问控制的重要技术。Spring Security 是一个强大的和高度可定制的安全框架,用于保护基于 Java 的 Web 应用程序。而 CAS...

    springmvc+spring+shiro+cas单点登录实例

    然后clean install tomcat7:run 就能跑起来,注意要修改node1和node2里的shiro.properties配置文件,要配置登录成功成功返回的路径 我的访问的分别是: 服务端: http://localhost:8050/cas-server 客户端:...

    cas单点登录技术

    点登录系统设计..................................................附件部分提供了在不同应用服务器(如WebLogic、Tomcat)上配置和实现CAS单点登录的指南,包括使用LDAP进行用户认证的步骤,为实际部署提供了参考。

    cas .net单点登录

    本示例将详细介绍如何在.NET项目中集成CAS单点登录。 首先,我们需要理解单点登录的概念。单点登录允许用户在一个系统中登录后,可以无须再次认证即可访问其他相互信任的系统,提高了用户体验和安全性。CAS作为一个...

    单点登录cas的配置过程

    本文将详细介绍CAS单点登录系统的配置过程,涵盖服务器端和客户端的配置步骤,并特别关注在配置过程中可能遇到的问题及解决方案。 #### 二、环境准备 为了确保能够顺利地进行CAS的配置,我们需要准备以下环境: -...

    SSO\CAS 单点登录配置手册

    ### SSO/CAS 单点登录配置手册 #### 一、单点登录(SSO)概述 单点登录(Single Sign-On, SSO)是一种让用户只需一次登录就能访问多个应用系统的认证方式。它不仅提升了用户体验,同时也提高了系统的安全性,因为用户...

    cas单点登录4.0

    CAS(Central Authentication Service)是...总之,"cas单点登录4.0"的资源对于学习和实践CAS单点登录系统非常重要。无论是部署和配置CAS服务器,还是深入研究其源代码,都能帮助我们更全面地理解和掌握单点登录技术。

    CAS 单点登录,tomcat配置SSL,及资源

    **CAS 单点登录原理与实现** ...通过以上步骤,你可以实现CAS单点登录,并在Tomcat服务器上配置SSL,确保通信安全。同时,正确集成CAS资源,能够让你的应用系统无缝接入CAS认证体系,提升用户体验。

    cas 单点登录 耶鲁大学单点登录

    本节将详细介绍如何配置一个基本的CAS单点登录环境,包括服务器端数字证书的生成与配置,以及Tomcat服务器的安全设置。 ##### 1. 配置服务器端的数字证书 在CAS环境中,数字证书对于确保通信安全至关重要。以下...

Global site tag (gtag.js) - Google Analytics