`
rocye
  • 浏览: 118727 次
  • 性别: 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单点登录HTTP协议版本配置指南

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

    落雨博客基于CAS框架的单点登录技术讲解(ppt+code实例+doc)配套资料

    3 CAS单点登录简介(针对实践选择的技术) 5 3.1 技术快速使用说明 5 3.1.1 设置服务器域名 5 3.1.2 生成证书(这里采用JDK自带的工具keytool) 5 3.1.3 为客户端JVM导入证书 6 3.1.4 将证书应用到Web服务器Tomcat 7...

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

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

    单点登录sso-shiro-cas-maven

    spring下使用shiro+cas配置单点登录,多个系统之间的访问,每次只需要登录一次 ## 系统模块说明 1. cas: 单点登录模块,这里直接拿的是cas的项目改了点样式而已 2. doc: 文档目录,里面有数据库生成语句,采用的...

    cas单点登录的专业秘籍

    1.cas的搭建与配置 2.将cas从https请求改为http请求 3.cas的认证方式:数据库认证+自定义认证方式(想怎么验证都可以) 4.自定义登录页面。 这可是精华,花费了我一个多星期时间整理出来的技术文档(简单明了)

    CAS-4.0.3客户端配置单点登录的Demo

    这是我的博文http://blog.csdn.net/jadyer/article/details/47067279用到的代码

    CAS之SSO配置手册

    此文档详细说明了CAS服务端及客户端相关配置,以及使用http和https配置。

    单点登录实

    单点登录实 , CAS 客户端,服务器端配置,单点登录实 单点登录实

    cas单点登陆cas-server的war包

    本资源是cas服务端的war包,内部配置文件常用的修改已经加了备注,直接放到tomcat中就能启动,键入http://localhost:8080/cas/login即可验证

    单点登录cas服务端部署war包,已编译,直接部署运行

    war直接放在tomcat下面运行即可,无须任何配置,访问地址http://127.0.0.1:8081/cas/login

    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...

    CAS Server和Client 数据库方式(已配置好)

    CAS Server 4.0 , Client 3.3 ,共3个TOMCAT,已经配置完毕,下载后, 1 修改tomcat-caswebappscasWEB-INF/deployerConfigContext.xml 中的35、48行,数据的配置; 2 在表t_user 中加一行数据 口令:e10adc3949ba59...

    cas统一身份认证sso

    统一身份认证-CAS配置实现 SSO单点登录Spring-Security+&+CAS+使用手册 统一身份认证-CAS配置实现 CAS登录验证(密码MD5、SHA加密后_再进行Base64加密实现代码)_与Liferay的用户身份验证对应

    sso单点登录

    casServerLoginUrl 是CAS服务器登录的地址; casServerUrlPrefix 是CAS服务器地址 serverName 子系统URL地址 Forms验证的loginUrl地址 &lt;forms loginUrl=...

    CAS客户端JAR包版本3.3.3

    -- 用于单点退出,该过滤器用于实现单点登出功能,可选配置 --&gt; org.jasig.cas.client.session.SingleSignOutHttpSessionListener &lt;!-- 该过滤器用于实现单点登出功能,可选配置。 --&gt; ...

    interapps-landing:支持CAS身份验证的Web应用程序服务器以及在React中完成的相关登录页面

    kubectl-版本1.11或更高版本需要安装和配置才能访问已部署的Discovery Environment名称空间。 配置 服务器项目使用dotenv来配置环境变量集。 环境变量的完整列表为: PORT-服务器将侦听请求的端口号。 DB-DE...

    cas-server-webapp-4.0.0:sso 单点登陆; 使用http,去掉证书认证; 配置mysql 数据元;

    cas 配置mysql 的数据源;create table user_ (screenName varchar(30), password_ varchar(45) , primary key (screenName))insert into user_ (screenName,password_) values ('test01','psw01');insert into user...

    sso:单点登录系统

    etc目录包含需要复制到/etc/cas的配置文件。 当前文件是: cas.properties log4j2.xml 建造 mvnw clean package 或者 mvnw.bat clean package 部署方式 嵌入式码头 使用密码changeit在/etc/cas/jetty/...

    基于SpringBoot+ORM-Mybatis+SpringMVC和多种组件构建的企业信息化开发基础平台源码+项目说明.zip

    │ ├─jeeplatform-sso-cas-----------------------CAS单点登录服务端 │ │ │ ├─jeeplatform--sso-oauth2---------------OAuth2.0单点登录服务端 │ │ ``` ## 二、系统设计 ### 系统管理(模块名称...

    spring security 参考手册中文版

    5.3 Java配置和表单登录 34 5.4授权请求 35 5.5处理注销 36 5.5.1 LogoutHandler 37 5.5.2 LogoutSuccessHandler 37 5.5.3更多注销相关参考 38 5.6认证 38 5.6.1内存认证 38 5.6.2 JDBC认证 39 5.6.3 LDAP认证 39 ...

Global site tag (gtag.js) - Google Analytics