使用cas实现sso [摘]
来源:互联网 发布:淘宝别克英朗脚垫 编辑:程序博客网 时间:2024/05/29 23:48
CAS (Central Authentication Service)是Yale大学的ITS开发的一套JAVA实现的开源
的SSO(single sign-on)的服务,http://www.yale.edu/tp/cas/
的SSO(single sign-on)的服务,http://www.yale.edu/tp/cas/
cas分为服务端和客户端,在服务端开启SSL,服务器下发证书安装到各个客户端中,客户端在与服务器进行通讯验证时,将检验二者的证书是否一致。
1、服务器中生成证书:keytool -genkey -alias cnc -keystore c:/mykeystore
导出证书,由客户端安装: keytool -export -alias -keystore c:/mykeystore -file c:/mycerts.cer
注:生成证书时,CN要和服务器的域名相同,如果在本地测试,则使用localhost
2、客户端配置:(注:使用client2.0.11版本稳定些,2.0.10总报异常)
将服务器下发的证书导入到JVM中
keytool -import -trustcacerts -alias cnc -keystore $JAVA_HOME/JRE/LIB/SECURITY/CACERTS -file c:/mycert.cer
(如果这样不行,则到JAVA_HOME/JRE/LIB/SECURITY/下进行)
配置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</param-value>
</init-param>
</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</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CASFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-name>CASFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
当前CAS默认的用户名和密码判断是,只要用户名和密码相同即可。使用的类为SampleHandler,一般的是与数据库进行匹配,这样我们可以实现PasswordHandler接口, 在authenticate()方法中进行验证。可以在容器中配置数据源,使用容器提供的数据源。
同时修改服务器下CAS的web.xml中的配置,使用自己的类。
<context-param>
<param-name>edu.yale.its.tp.cas.authHandler</param-name>
<param-value>edu.yale.its.tp.cas.auth.provider.MyDBHandler</param-value>
</context-param>
然后重新BUILD,将类打包,替换服务器CAS/WEB-INF/LIB下原来的包。
CAS只能提供SSO,对于角色,授权,则要在web.xml进行相应的配置<security-constraint>,也可以使用filter。
常出现的异常:“未找到可信任的证书”--主要原因为在客户端未将服务器下发的证书导入到JVM中,可以用keytool -list -alias cnc -keystore $JAVA_HOME/JRE/LIB/SECURITY/CACERTS
来查看证书是否真的导入到JVM中。
“https hostname must be www.xx.com“---主要原因为在创建keystore是,CN没设置成为服务器的域名,例如 www.auth.com.cn
- 使用cas实现sso [摘]
- 使用cas实现sso
- 使用CAS实现SSO.
- 使用CAS实现SSO
- [学习] 使用 CAS 实现 SSO 实践过程
- 使用CAS实现SSO(单点登录)
- 使用CAS实现SSO简洁教程
- 使用CAS实现SSO简洁教程
- java使用CAS实现SSO单点登录
- cas实现sso
- 利用CAS实现SSO
- cas实现sso
- 在Tomcat中使用Yale CAS实现单点登陆(SSO)
- 在Weblogic中使用Yale CAS实现单点登陆(SSO)
- 使用 CAS 在 Tomcat 中实现单点登录(SSO)
- 使用CAS部署SSO服务的简单实现
- Liferay中使用CAS实现单点登陆(SSO)
- cas系列(五)--CAS+OpenLDAP实现SSO
- 如何编写高质量“软件需求说明书”
- 网页设计
- 电脑自检报警声解析
- Java获得CPU序列号和网卡Mac地址
- 微软网络广播音频下载!
- 使用cas实现sso [摘]
- 给用2000与XP朋友的特殊蓝屏信息
- lua学习(一)
- 今天是6月8号,楠去唐山了
- Serv-U配置文件用户密码存储算法
- 开发web应用难于上青天,web开发十八难
- 马上就要毕业了
- msinfo
- CSS网页制作时实现自动换行的小技巧