`
eddie
  • 浏览: 92090 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

一个简单实际可用的CAS配置日志

    博客分类:
  • CAS
阅读更多
1      目的
撰写本文的目的是记录一个简单、以数据库为验证用户的单点登陆的CAS配置过程,看过其他文档,要么没有配置过程,要么过于复杂。配置之前建议先仔细研究下相关的参考文档,只有明白了相关原理,配置起来其实很简单。
2      名词解说
Single Sign On - 通过用户登录一次,即可获得需访问系统和应用软件的授权。
Yale CAS - 耶鲁大学开发的单点登录(Single Sign On)系统称为CASCentral Authentication Server)被设计成一个独立的Web应用程序(cas.war)
3      参考
Keytool使用指南:
 
Tomcat-ssl配置指南:
 
Cas文档:
4      安装环境
WINXP + JDK1.5 + Tomcat 5.5.30 + CAS Server 3.0.7 + Yale CAS Client 2.1.1
5      配置过程
5.1         安装和配置Tomcat的SSL
参考以下帖子-Tomcat SSL配置大全:
5.2         配置CAS服务器端
解压 cas-server-3.0.6.zip,把 \target\cas.war copy 到 %CATALINA_HOME%\webapps\ 下
5.3         配置CAS 客户端
我们要将tomcatjsp-examples servlets-examples2个应用全部经过SSO的验证,CAS缺省验证方式的类是:org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler
这种配置只是用于测试目的,只要用户名和密码相同就可以验证通过了。
5.3.1   配置应用servlets-examples
修改<!---->\webapps\servlets-examples\WEB-INF\web.xml

servlet servlet-mapping 中间加上以下设置

xml 代码
  1. <filter>  
  2.     <filter-name>CASFilterfilter-name>  
  3.     <filter-class>  
  4.         edu.yale.its.tp.cas.client.filter.CASFilter   
  5.     filter-class>  
  6.     <init-param>  
  7.         <param-name>  
  8.             edu.yale.its.tp.cas.client.filter.loginUrl   
  9.         param-name>  
  10.         <param-value>https://localhost:8443/cas/loginparam-value>  
  11.     init-param>  
  12.     <init-param>  
  13.         <param-name>  
  14.             edu.yale.its.tp.cas.client.filter.validateUrl   
  15.         param-name>  
  16.         <param-value>  
  17.             https://localhost:8443/cas/proxyValidate   
  18.         param-value>  
  19.     init-param>  
  20.     <init-param>  
  21.         <param-name>  
  22.             edu.yale.its.tp.cas.client.filter.serverName   
  23.         param-name>  
  24.         <param-value>localhost:8080param-value>  
  25.     init-param>  
  26.     <init-param>  
  27.         <param-name>  
  28.             edu.yale.its.tp.cas.client.filter.serverName2   
  29.         param-name>  
  30.         <param-value>192.168.5.13:8080param-value>  
  31.     init-param>  
  32. filter>  
  33. <filter-mapping>  
  34.     <filter-name>CASFilterfilter-name>  
  35.     <url-pattern>/servlet/*url-pattern>  
  36. filter-mapping>  

 

: edu.yale.its.tp.cas.client.filter.serverName 是表示需要 redirect 的网址如果有1个以上的网址, 则可以一直增加上去注意 param-name 要不一样
edu.yale.its.tp.cas.client.filter.loginUrl redirect 的网址
 
 

 

5.3.2     配置应用jsp-examples
修改%CATALINA_HOME%\webapps\jsp-examples\WEB-INF\web.xml在 servlet 及 servlet-mapping中间加上以下设置:
xml 代码
  1. <filter>  
  2.     <filter-name>CASFilterfilter-name>  
  3.     <filter-class>  
  4.         edu.yale.its.tp.cas.client.filter.CASFilter   
  5.     filter-class>  
  6.     <init-param>  
  7.         <param-name>  
  8.             edu.yale.its.tp.cas.client.filter.loginUrl   
  9.         param-name>  
  10.         <param-value>https://localhost:8443/cas/loginparam-value>  
  11.     init-param>  
  12.     <init-param>  
  13.         <param-name>  
  14.             edu.yale.its.tp.cas.client.filter.validateUrl   
  15.         param-name>  
  16.         <param-value>  
  17.             https://localhost:8443/cas/proxyValidate   
  18.         param-value>  
  19.     init-param>  
  20.     <init-param>  
  21.         <param-name>  
  22.             edu.yale.its.tp.cas.client.filter.serverName   
  23.         param-name>  
  24.         <param-value>localhost:8080param-value>  
  25.     init-param>  
  26.     <init-param>  
  27.         <param-name>  
  28.             edu.yale.its.tp.cas.client.filter.serverName2   
  29.         param-name>  
  30.         <param-value>192.168.5.13:8080param-value>  
  31.     init-param>  
  32. filter>  
  33. <filter-mapping>  
  34.     <filter-name>CASFilterfilter-name>  
  35.     <url-pattern>/*url-pattern>  
  36. filter-mapping>  

 

: jsp-examples servlets-examples 基本上大同小异唯一不一样就是 filter-mapping url-patternjsp-examples /*servlets-examples /servlet/*
 
5.3.3   设置需要用到的cas-client库
将casclient-2.1.1.zip改名为casclient-2.1.1.jar, copy jsp-examples servlets-exampleslib
 
5.4   测试配置
启动tomcat,访问如下地址:
 
这时,系统会提示你将要访问的是加密网站,并问你接受该网站提供的证书,点接受后,将显示CAS单点登陆页面,地址变成如下:
 
输入任意的用户名,密码和用户名相同就可以进入刚才要访问的页面。
这时再访问servlets-examples 应用下面的任一个servlet,如:
 
访问后,你会发现地址栏的地址变为:
 
后面增加了?ticket=ST-3-6EuKFN4M2aLj9cVup6sABykzheEnAnY3Zmb-20,这就是CAS的ticket(票据)
刚才我们其实配置了2个应用都是需要验证用户的,如果用户先访问servlets-examples应用下面的servlet,同样会提示登陆,再访问jsp-examples,也不会提示登陆了,说明我们的单点登陆配置成功。
5.5         配置CAS通过数据库验证用户
CAS缺省配置只是用于测试目的,实际应用中,通过数据库进行验证用户最为常见,所以,我们现在测试通过数据库验证用户。先停止tomcat.
5.5.1   创建数据库表
我们测试使用的是oracle数据库,可以选用任何一个支持JDBC的数据库。用scott/tiger登陆sqlplus,输入如下语句创建用户表和输入测试数据:
create table app_user(username varchar(100), password varchar(100));
insert into app_user values('tomcat', 'tomcat');
insert into app_user values('cas', 'cas');
commit;
 
5.5.2   修改CAS 服务器端配置
修改%CATALINA_HOME%\webapps\cas\WEB-INF\ deployerConfigContext.xm把以下的程序代码屏蔽掉:
xml 代码
  1. <bean class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" />  

 在同一地方加上以下程序代码:

xml 代码
  1. <bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">  
  2. <property name="sql" value="select password from app_user where username=?" />  
  3. <property name="dataSource" ref="dataSource" />  
  4. bean>  

 定义 dataSource bean,注意,配置的地方应该在之前,不要放错了位置,不是和以上验证bean放在一起。

xml 代码
  1. <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" destroy-method="close">  
  2. <property name="driverClassName"><value>oracle.jdbc.driver.OracleDrivervalue>property>  
  3. <property name="url"><value>jdbc:oracle:thin:@127.0.0.1:1521:oracle9ivalue>property>  
  4. <property name="username"><value>scottvalue>property>  
  5. <property name="password"><value>tigervalue>property>  
  6. bean>  

 

5.5.3   添加CAS 服务器需要用到的jar
把 cas-server-3.0.6.zip里的 \target\cas-server-jdbc-3.0.6.jar copy 到%CATALINA_HOME%\webapps\cas\WEB-INF\lib下。
 
把 Oracle jdbc jar即ojdbc14.jar copy到%CATALINA_HOME%\webapps\cas\WEB-INF\lib下。
 
5.5.4  再次测试

启动tomcsat,重复刚才的测试,哈哈,输入tomcat/tomcat,可以了。

分享到:
评论
10 楼 yuanpan1987 2011-07-28  
请问%CATALINA_HOME%这是哪个目录呀?
9 楼 eddie 2007-11-05  
证书部分太长,只能单独放置!放在一起显得文章太长了。如果用户不愿意点,那说明他对这个不感兴趣,呵呵!
8 楼 Heraclesun 2007-10-24  
这个测试我也做过,证书那个是个大问题,网上用户可不原意点那个钮啊!不知道博主怎么解决这个问题
7 楼 penghao122 2007-08-03  
,不错正是要找这方面的资料....
6 楼 jinlibing 2007-05-10  
生成crt key?可以在其他的服务器使用?
5 楼 eddie 2007-05-10  
talangniao 写道
没有使用过,不知道能不能结合hibernate+struts+spring+agcei开发的项目使用


百分百没有问题,只要替换CAS client成acegi就可以了。请参考acegi文档,或者Spring in Action这本书。我一直担心的是acegi的效率不是很高,我有次性能测试,acegi+webwork,发现这种方式过滤器调用的层次太深,调用了几十次,才到我们的页面,至少有1/3时间浪费在过滤器上面了。
4 楼 talangniao 2007-05-10  
辛苦你了!
3 楼 eddie 2007-05-10  
这个网页编辑器实在是难用,格式很难调整到美观,发了一个帖子竟然用了半个小时。费尽啊,希望博客管理员能够进行改进。
2 楼 talangniao 2007-05-10  
没有使用过,不知道能不能结合hibernate+struts+spring+agcei开发的项目使用
1 楼 talangniao 2007-05-10  
哈哈 我一直在看的
要跟着你学习 

相关推荐

    cas客户端登陆配置文档

    4. **自定义登录界面**:如果你想自定义客户端的登录界面,可以在应用中创建一个定制的登录页面,然后配置CAS客户端库以使用该页面。你需要确保页面能够收集用户的凭证(通常是用户名和密码)并提交到CAS服务器进行...

    cas 系统实例 服务端配置(一)

    标题 "cas 系统实例 服务端配置(一)" 提到的是 CAS(Central Authentication Service)系统的一个服务端配置教程。CAS 是一个开源的身份验证框架,主要用于实现单一登录(Single Sign-On, SSO)。在本教程中,我们...

    CAS单点登录配置

    CAS(Central Authentication Service,中央认证服务)是一种广泛使用的开源单点登录(Single Sign-On, SSO)系统,它允许用户通过一个入口点登录,然后在多个应用之间无缝切换,而无需再次验证身份。CAS的目的是...

    CAS配置全攻略

    CAS(Central Authentication Service)是基于Java的开源身份验证框架,用于实现单一登录(Single Sign...通过本文的介绍,你应该对CAS配置有了全面的认识,接下来就是实践操作,让CAS在你的项目中发挥安全保障的作用。

    cas .net客户端的配置代码

    CAS是一种基于Web的SSO协议,它允许用户通过一个认证点进行身份验证,然后可以在多个应用之间共享这个认证信息,而无需再次登录。在.NET环境中,我们可以使用`System.Web.Security.FormsAuthentication`类或者专门的...

    Shibboleth的安装以及配置CAS作为验证源.rar

    3. **创建Shibboleth CAS认证模块**:在Shibboleth配置目录下,创建一个新模块,如`cas-authn.shibboleth2.xml`,指定CAS服务器的URL和服务端点。 4. **配置认证策略**:在`idp-metadata.xml`文件中,定义认证策略...

    CAS SSO配置文档

    CAS(Central Authentication Service,中央认证服务)是单点登录(Single Sign-On,SSO)的一种实现,它允许用户在一个应用系统中登录后,无需再次认证即可访问其他已集成的系统。本配置文档主要涵盖了如何搭建CAS...

    cas server 4.2.7 环境搭建maven

    CAS(Central Authentication Service)服务器是一种基于Java的开源身份验证...在实际操作中,可能还会遇到如调整日志配置、设置数据库连接、自定义服务验证逻辑等任务,这些都是进一步完善CAS Server部署的关键步骤。

    搭建cas服务,cas与sqlserver连接,cas与security连接

    CAS(Central Authentication Service)是Java开发的一个开源身份验证框架,主要用于实现单点登录(Single Sign-On,SSO)。本教程将详细介绍如何搭建CAS服务,并将其与SQL Server数据库和Spring Security进行集成。...

    CAS整合OpenLDAP(OpenLDAP已配置好的情况)

    CAS(Central Authentication Service),由 Jasig 组织开发,是一个开源的、基于Java的Web应用,主要用于实现单点登录(Single Sign-On,SSO)。在许多组织中,为了统一管理和认证用户,通常会将CAS与LDAP服务器...

    CAS JPA-Ticket存储解决负载均衡配置

    完成这些配置后,所有CAS Server实例都会将Ticket存储到同一个数据库中,从而实现了Ticket的共享。在负载均衡环境中,用户在任一服务器上完成认证后,其Ticket可以在其他服务器上被识别,保证了会话的连续性。 ...

    cas单点登录代码例子 有文档 服务端客户端例子 亲测可用

    文档部分(cas配置.docx): 文档应该详细介绍了如何配置和运行这些示例,包括CAS服务端和客户端的设置步骤、可能出现的问题及其解决方案。它可能会涵盖CAS的基本原理、配置项的解释、环境变量的设置,以及如何调试...

    cas单点登录配置

    CAS(Central Authentication Service)是耶鲁大学开发的一个开源项目,专门用于实现SSO功能。本文将详细介绍如何配置CAS实现SSO,并探讨其工作原理。 ### CAS服务器介绍 CAS服务器作为SSO的核心,负责处理用户的...

    sso系统CAS配置[总结].pdf

    以下是关于CAS配置的一些关键知识点: **服务器端配置:** 1. **证书配置**:在配置SSO系统时,首先需要处理的是服务器的证书配置,这涉及到HTTPS协议的安全连接。证书用于验证服务器的身份,确保数据传输的安全性...

    cas-server4.2.7数据库配置相关文件以及说明

    CAS(Central Authentication Service)是Java开发的一个开源的单点登录(Single Sign-On,SSO)系统,主要用于统一认证管理。CAS服务器4.2.7版本的数据库配置涉及到多个环节,包括数据库连接、用户数据存储与读取等...

    cas-overlay-template-6.1 服务端代码

    在部署CAS 6.1X Server时,首先需要理解其基本架构,它基于Spring Boot,这意味着服务器是一个独立的应用程序,可以轻松地进行配置和运行。在部署过程中,你可能需要修改以下关键组件: 1. **pom.xml**: 这是Maven...

    shiro-cas-1.2.1.jar

    SLF4J 提供了一个简单的抽象层,使得开发者能够在不修改代码的情况下改变日志实现。 集成 Shiro 和 CAS 的主要步骤如下: 1. **配置 CAS Server**:首先,你需要设置和配置 CAS 服务器,这通常是一个 Web 应用,...

    SSO CAS单点登录配置教程

    一旦验证成功,服务器会返回一个票证(Ticket),客户端应用再用这个票证来获取用户的授权信息,从而实现无感知的身份验证。 配置CAS SSO主要涉及以下几个步骤: 1. **环境准备**:确保你的开发环境已经安装了Java...

    cas-server-3.5.2

    "cas-server-3.5.2" 是一个用于实现单点登录(Single Sign-On, SSO)集成方案的软件包,具体版本为3.5.2。SSO是一种网络认证协议,它允许用户在一个应用系统中登录后,无须再次认证即可访问其他相互信任的应用系统。...

Global site tag (gtag.js) - Google Analytics