- 浏览: 149720 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
驭乐MJ:
好!谢谢啦!正在学习使用sean中。。
Seam学习笔记 -
laorer:
00 -现在,互联网造就了一批富翁,但那时,似乎什么都不会去想 ...
如果时光能够回流到八年前 -
liuqizhi0925:
八年前,OMG ,能改变的事情真的很多...
如果时光能够回流到八年前
•相关文档
官方文档:
http://www.ja-sig.org/products/cas/
http://www.ibm.com/developerworks/web/library/wa-singlesign/
http://developer.yahoo.com/auth/
网友学习笔记:
JA-SIG(CAS)学习笔记1 http://linliangyi2007.iteye.com/blog/165307
JA-SIG(CAS)学习笔记2 http://linliangyi2007.iteye.com/blog/165310
JA-SIG(CAS)学习笔记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.cer是564字节,而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.war到tomat的webapps目录下
5. 配置受管的web应用:
1)casclient.jar拷贝到你所发布的webapp的WEB-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中对用户身份进行验证。
发表评论
-
Weblogic的update和stop/start的区别
2009-10-28 19:50 2129Weblogic的update和stop/s ... -
Web Service HTTP1.0 and HTTP1.1性能测试报告
2009-10-21 17:55 3059第1章 测试需求分析 1.1 测试目的 w ... -
SOA与业务敏捷
2006-08-30 00:00 778作者:TIBCO中国研发中心 胡长城(银狐999) ... -
RESTful Web Services
2006-08-23 00:00 9211. The Fundamental 1.1 What ... -
SOA学习笔记
2006-07-26 00:00 867SOA是为了解决在Internet ... -
Lucene 基础指南[转]
2006-07-12 00:00 1215Lucene 基础指南 作者:lighter, 江南白衣 ... -
OSGi入门笔记
2006-07-05 00:00 919借助网上的一些资料,对OSGi有了一些了解,将到目前的一些粗浅 ... -
x509数字证书介绍
2006-06-28 00:00 1242一、什么是数字证书 数字证书就是互联网通讯中标志通讯各方身 ... -
SSL协议及其应用
2006-06-21 00:00 1991SSL协议及其应用 ... -
JSR 168与WSRP
2006-06-07 00:00 1512作者:Rachel Greenblatt ... -
JBoss学习笔记
2006-05-31 00:00 1318JBoss架构是由JMX MBean服务器、微内核组成的。 ... -
UDDI笔记
2006-05-24 00:00 1048◆UDDI的目的实际上是想提供一个针对公众网商业用户的在全 ... -
选择Seam的十大理由
2006-05-17 00:00 903一、增加AJAX特征的最快捷方式 在功能上,Ajax改变了W ... -
Seam学习笔记
2006-05-10 00:00 1303FAQ: seam的英文意思是:缝、接合处。seamless ... -
JSF学习笔记
2006-05-03 00:00 2767FAQ: 1. JSF跟Spring如何结合? A ... -
Spring学习笔记
2006-04-26 00:00 986Spring笔记 0. 背景 Spring F ... -
iBATIS学习笔记
2006-04-19 00:00 13441. iBATIS 关于iBATIS,iBATIS是一个Da ... -
Hibernate's FAQ
2006-04-05 00:00 7401. 关于session 1) 什么时机对session ... -
Hibernate学习笔记
2006-03-29 00:00 885● 相关文档: Hibernate参考文档 v3.0.2 ... -
JMX学习笔记
2006-03-22 00:00 964JMX 笔记 一些JMX的简单入门资料如下: ...
相关推荐
学习笔记学习笔记学习笔记学习笔记学习笔记学习笔记学习笔记学习笔记学习笔记学习笔记学习笔记学习笔记学习笔记学习笔记
JA-SIG(CAS)学习笔记 文章分类:Java编程 关键字: ja-sig cas sso https 单点登录 统一认证 实验背景: 系统环境: Windows XP | SUN JDK1.6U4 | Tomcat6.0.14 | CAS Server 3.1.1 + CAS Client 2.1.1 主机完整...
CAS学习笔记 --CAS的服务器配置和各种客户端的配置
CAS整合LDAP实现单点登录学习笔记 包含所有过程。
CAS技术框架 CAS Server 目前,我们使用的CAS Server 3.1.1的是基于Spring Framework编写的,因此在CAS服务器端的配置管理中,绝大多数是Spring式的Java Bean XML配置。CAS 的服务器提供了一套易于定制的用户...
什么是SSO(Single Sign On)单点登录: 所谓单点登录是指基于用户/会话认证的一个过程,用户只需一次性提供凭证(仅一次登录),就可以访问多个应用。 目前单点登录主要基于Web的多种应用程序,即通过浏览器实现...
CAS整合LDAP实现单点登录学习笔记.pdf
NULL 博文链接:https://dylanxu.iteye.com/blog/1871341
主要包括cas服务器、cas客户端、安全证书、ldap用户认证的配置等等。学习单点登录必备
CAS整合LDAP实现单点登录的原理及部署学习笔记,cas实现单点登录,ldap负责账户管理
本人在学习单点登录系统中搜集到的一些笔记
CAS操作 CAS是单词compare and set的缩写,意思是指在set之前先比较该值有没有变化,只有在没变的情况下才对其赋值。 我们常常做这样的操作 if(a==b) { a++; } 试想一下如果在做a++之前a的值被...
本文档主要内容如下: 1、线程安全和锁 Synchronized 底层实现原理 2、可重入锁与 Synchronized 的其他特性 3、ThreadLocal 的底层实现与使用 4、ReentrantLock底层实现和如何...12、CAS原理分析和使用场景 13、.....
本项目为全栈工程师学习笔记,不求最深最好,开源技术搬运工 其他项目:Spring Cloud微服务学习笔记 Spring Boot项目实践 Java体系知识点汇总: : 网站资源链接 S3基本使用事件 数据库隔离等级验证 常用JVM命令...
ConcurrentHashMap是基于散列表实现的,存储的是Key/Value对,底层使用数组+链表+红黑树+CAS算法实现的,数组是存储元素并且查找快,链表是为了解决哈希冲突而存在的,红黑树是为了解决链表中查询速度慢而使用的。...
学习笔记 数据结构 Java (最终基于CAS实现) Spring Mybatis Zookeeper 数据库 Linux 大数据 协议 代码质量 画图工具 (在线,支持流程图、思维导图、原型图、UML、网络拓扑图等) ##Web转App工具 We5X HBuilder 数据...
shell中的case语句:可以把变量的内容与多个模板进行匹配,再根据成功匹配的模板去决定应该执行哪部分代码。 使用格式:case 匹配母板 in模板1 [ | 模板2 ] … ) 语句组 ;;模板3 [ | 模板4 ] … ) 语句组 ;...
case语句是用来实现多个if..else的功能的,但是用法上有些不同,学过其他语言的人都知道,case中要对变量进行匹配,如果有一个匹配成功的话就执行相应的语句。shell编程中的case语句也是这个意思,case会对字符串...