`
csbison
  • 浏览: 153590 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

CAS学习笔记

阅读更多

•相关文档

   官方文档:

http://www.ja-sig.org/products/cas/  

http://www.ibm.com/developerworks/web/library/wa-singlesign/

http://developer.yahoo.com/auth/

 

网友学习笔记:

  JA-SIGCAS)学习笔记1 http://linliangyi2007.iteye.com/blog/165307

  JA-SIGCAS)学习笔记2 http://linliangyi2007.iteye.com/blog/165310

  JA-SIGCAS)学习笔记3 http://linliangyi2007.iteye.com/blog/165313

 

    •生成和导入数字证书的步骤:

    

1. 生成 server keystore

 

keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit -keystore server.keystore

注意:

keystore里面放什么东西呢?

keystore存放着两种数据:密钥(或公私钥对)和信任证书。信任证书中只包含公钥。

你之后会发现keystore文件比导出的证书server.cer大;例如某示例中server.cer564字节,而keystore文件是1.3KB

 

2. (keystore)导出证书,并导入到jvm的证书机构中

keytool -export -trustcacerts -alias tomcat -file server.cer -keystore  server.keystore -storepass changeit

keytool -import -trustcacerts -alias tomcat -file server.cer -keystore  %JAVA_HOME%/jre/lib/security/cacerts -storepass changeit

 

//其他参考指令

//keytool -list -v -keystore %JAVA_HOME%/jre/lib/security/cacerts

//keytool -delete -trustcacerts -alias tomcat  -keystore  %JAVA_HOME%/jre/lib/security/cacerts -storepass changeit

 

3. 修改conf\server.xml

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

           keystoreFile="server.keystore"    

           keystorePass="changeit"/>

注意:

keystoreFile属性是指定keystore的文件路径。

truststoreFile属性是指定信任证书的文件路径。

clientAuth属性设置为false表示单向SSL,一般的都是单向SSL。设置为true表示双向SSL

 

 

4. 部署cas.wartomatwebapps目录下

5. 配置受管的web应用:

    1casclient.jar拷贝到你所发布的webappWEB-INF/lib

    2)在web.xml中加入——

    <filter>

        <filter-name>CASFilter</filter-name>

        <filter-class>edu.yale.its.tp.cas.client.filter.CASFilter</filter-class>

        <init-param>

           <param-name>edu.yale.its.tp.cas.client.filter.loginUrl</param-name>

           <param-value>https://localhost:8443/cas/login</param-value>

        </init-param>

        <init-param>

           <param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name>

           <param-value>https://localhost:8443/cas/proxyValidate</param-value>

        </init-param>

        <init-param>

          <param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name>

          <param-value>localhost:4040</param-value>

        </init-param>

   </filter>

 

注意:

在第1步骤生成keystore需要指定CN:就是服务器的域名(或者是localhost),不能是IP地址。配置CAS客户端的配置参数中的“edu.yale.its.tp.cas.client.filter.serverName”表示验证完毕将跳转到原来的客户端应用。这里可以填IP,例如192.168.2.9:4040;不过记得不要以http://开头。

 

 

    CAS验证中心的定制和开发:

    

需要实现下面的3个步骤:

 

1. 自定义AuthHandler

自己实现AuthenticationHandler接口,或者利用用户名/密码的方式进行验证的话可以采用extends AbstractUsernamePasswordAuthenticationHandler

 

2. 修改配置文件

修改cas\WEB-INF\deployerConfigContext.xml,在<property name="authenticationHandlers">中注释掉之前的bean,加上自己自定义的authenticationHandler

 

3. 定制身份验证登录界面

需要修改以下页面(在cas\WEB-INF\view\jsp\路径下)——

casConfirmView.jsp —— 确认信息(警告信息)页面

casGenericSuccess.jsp —— 登陆成功提示页面

casLoginView.jsp —— 登录输入页面

casLogoutView.jsp —— SSO登出提示页面

 

 

 

    •受管web应用的定制和开发:

    

选择下面步骤的其中之一:

 

1. session中获取用户名

String username = (String)session.getAttribute(CASFilter.CAS_FILTER_USER);

或者

String username = (String)session.getAttribute("edu.yale.its.tp.cas.client.filter.user");

 

2.获得更完整的受认证用户信息对象CASReceipt Java Bean,可以使用以下语句的任一:

 

CASReceipt receipt = (CASReceipt )session.getAttribute(CASFilter.CAS_FILTER_RECEIPT);

或者 CASReceipt receipt = (CASReceipt )session.getAttribute("edu.yale.its.tp.cas.client.filter.receipt");

 

3.手工编码使用CAS Java Object进行用户验证,使用ServiceTicketValidator或者 ProxyTicketValidator(代理认证模式下),在servlet中对用户身份进行验证。

 

 

分享到:
评论

相关推荐

    CAS 开发综合笔记

    4. **JA-SIG CAS学习笔记**: "JA-SIG(CAS)学习笔记2"和"JA-SIG(CAS)学习笔记3"涵盖了CAS的基本概念、架构和配置,以及如何与Java应用集成。JA-SIG是一个高等教育软件联盟,其文档对于理解CAS的教育背景和应用...

    cas整合ldap实现单点登录学习笔记

    CAS整合LDAP实现单点登录学习笔记 包含所有过程。

    CAS单点登录学习笔记五之CAS服务器数据源

    本篇学习笔记主要聚焦于CAS服务器的数据源配置,这对于理解CAS如何存储和管理用户认证信息至关重要。在CAS的运行中,数据源作为连接数据库的关键组件,用于存储和检索用户凭证、服务定义等信息。 首先,我们需要...

    JA-SIG(CAS)学习笔记3.doc

    在学习CAS Client时,我们将重点关注如何配置CAS Filter和`ProxyTicketReceptor`,以及在Java SE环境下使用`ServiceTicketValidator`进行Ticket认证。 【定制身份认证程序】 要将CAS集成到现有的企业应用中,关键...

    CAS整合LDAP实现单点登录学习笔记.pdf

    具体到本次学习笔记中,可以看到提到了如何使用CAS 3.2.1的版本,并且涉及到整合JA-SIG CAS的开发。文档中提到的步骤包括用户从客户端访问服务,服务重定向到CAS服务器的登录界面,用户在CAS服务器登录后获得票据,...

    CAS整合LDAP实现单点登录学习笔记.doc

    CAS(Central Authentication Service)是基于Java的开源SSO协议实现,由JA-SIG组织开发,旨在简化Web应用的认证流程。 CAS的核心设计愿景是提供一个统一的认证入口点,使得所有应用系统可以通过这个中心服务验证...

    BlueCoat CAS 管理员手册笔记

    BlueCoat CAS管理员手册笔记根据官方文档整理而成,涵盖...需要注意的是,管理员手册笔记是基于CAS *.*.*.*版本整理的,随着版本的更新,系统组件和处理流程可能有所变化,管理员应根据最新版本的文档进行学习和操作。

    CAS整合LDAP实现单点登录原理及部署

    CAS整合LDAP实现单点登录的原理及部署学习笔记,cas实现单点登录,ldap负责账户管理

    cas配置详解

    这个压缩包文件包含了一系列的学习笔记,可以帮助我们深入了解CAS的工作原理和配置。 首先,让我们从基础概念开始。CAS的核心功能是为用户提供统一的登录验证,用户只需在一个系统中登录,即可访问所有支持CAS的...

    JAVA并发编程学习笔记之CAS操作

    CAS操作  CAS是单词compare and set的缩写,意思是指在set之前先比较该值有没有变化,只有在没变的情况下才对其赋值。  我们常常做这样的操作  if(a==b) {  a++;  }  试想一下如果在做a++之前a的值被...

    SDRAM调试学习笔记

    SDRAM 调试学习笔记 SDRAM(Synchronous Dynamic Random Access Memory,同步动态随机存储器)是一种常见的存储器类型,本文将从理论和实践两个方面对 SDRAM 进行深入的解剖和分析。 一、SDRAM 的内部结构 SDRAM ...

    并发编程之一 日常学习笔记

    本篇笔记主要关注并发编程中的两个关键概念:CAS(Compare and Swap)原子操作和Java线程的深入理解。 首先,我们来详细探讨一下CAS(比较并交换)原子操作。CAS是一种无锁算法,它通过比较内存中的某个值与期望值...

Global site tag (gtag.js) - Google Analytics