用cas实现sso的方法

转载 2007年09月12日 10:51:00
弄了一下午的cas安装终于成功了,,现在将步骤叙述一下
下载
        
cas-server-3.0.4.zip              
http://www.ja-sig.org/downloads/cas/cas-server-3.0.4.zip


cas-client-2.0.11.zip  http://www.ja-sig.org/downloads/cas-clients/cas-client-2.0.11.zip
环境为 winxp  tomcat5.5.17  jdk1.5.0_05
1. 生成服务端证书
keytool -genkey -alias casserver -keyalg RSA -keystore tomcat.jks
CN:localhost
其他的随便  
这里要注意姓名必须是服务器的域名 由于我是在本机所以是localhost
如果不这样写就会报如下异常:
java.io.IOException: HTTPS hostname wrong:  should be <localhost>

这个异常出现在创建证书的第一个问题 姓名。其实这个“姓名”应该是域名。比如说localhost或是blogjava.net之类的。输成了姓名,和真正运行的时候域名不符,就会出错。浏览器无所谓,弹出一个对话框,用户按一下就行了。但http client就直接抛出了异常。--google出来的

2. 导出证书
keytool -export -file cas.cer -alias tomcat -keystore tomcat.jks

3.把导出的证书导入到jre/lib/security的cacerts中

    方法如下

    假设你的jdk安装在C:/jdk1.5这个目录,

    开始 >> 运行 >> 输入cmd 进入dos命令行 >>

    再用cd进入到C:/jdk1.5/jre/lib/security这个目录下

    敲入如下命令回车执行

    keytool -import -alias cacerts

        -keystore C:/jdk1.5/jre/lib/security/cacerts

        -file C:/cas.cer

        -trustcacerts

    此时命令行会提示你输入cacerts证书库的密码,

    你敲入changeit就行了,这是java中cacerts证书库的默认密码,

    你自已也可以修改的。

将服务器下发的证书导入到JVM中
keytool -import -trustcacerts -alias cnc -keystore $JAVA_HOME/JRE/LIB/SECURITY/CACERTS -file c:/mycert.cer 
(如果这样不行,则到JAVA_HOME/JRE/LIB/SECURITY/下进行)


这里又有一点要注意的   可能由于我的jre在线升级过一次 现在的工作的jre目录在C:/Program Files/Java/jre1.5.0_06/ 所以要把证书导入到C:/Program Files/Java/jre1.5.0_06/lib/security的cacerts中去
我一开始就是因为 导入到了%JAVA_HOME%的jre中 结果弄了半天都不成功报异常如下:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

4.配置tomcat使用ssl
<Connector port="8443" maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" disableUploadTimeout="true"
               acceptCount="100" scheme="https" secure="true"
               clientAuth="false"//单向SSL
               keystoreFile="C:/tomcat.jks" //我生成的keystore存放在c盘
               sslProtocol="TLS" />

5.

部署CAS应用
  解压 cas-server-3.0.4.zip, 提取 /target/cas.war 文件,将 cas.war 文件复制到 TOMCAT 的安装路径 webapps 下,启动 TOMCAT ,检查 CAS
应用是否正常启动。

6.客户端配置
下载cas-client-2.0.11.zip

java/lib/casclient.jar考到 你所发布的webapp的WEB-INF/lib下
修改WEB-INF/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:8443</param-value>
        </init-param>
    </filter>
   
    <filter-mapping>
        <filter-name>CASFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

把里面的localhost换成域名
8443换成你所使用的端口
接着连接 https://localhost:8443/app1    //app1是你要实现sso的web应用
接着页面就会跳转到cas的登陆页面 就像你在第5步看到的页面一样
随便用一个用户名登陆 只要 用户名和密码一样就可以登陆
可以在app2上重复步骤6 这样只要在app1上登陆后 再连接app2的url就不用再次登陆了
这就是单点登陆了。
 其实是一个很简单的事情 但是过程中要注意 步骤1和3
 

基于CAS实现单点登录(SSO):自定义登录验证方法

通过配置方式实现数据库查询认证,的确简单但是不够灵活。但是如果登录验证逻辑稍微复杂些,可能通过配置方式就不能满足需求了,比如:当用户登录时,需要判断该用户是否绑定了邮箱,如果未绑定,拒绝登录并给出提示...

基于CAS实现单点登录(SSO):自定义登录验证方法

通过配置方式实现数据库查询认证,的确简单但是不够灵活。但是如果登录验证逻辑稍微复杂些,可能通过配置方式就不能满足需求了,比如:当用户登录时,需要判断该用户是否绑定了邮箱,如果未绑定,拒绝登录并给出提示...

架构师熟悉cas技术方案实现sso

  • 2017年07月30日 10:22
  • 344KB
  • 下载

用YALE -CAS实现SSO

  • 2008年09月17日 16:47
  • 149KB
  • 下载

部署CAS SSO时提示BEA-101017的解决方法

部署CAS SSO时提示BEA-101017的解决方法 版权声明:本文为炎雨0927(heiyan_7)原创文章,非商用自由转载,请保持署名并注明出处,谢谢。 公司的统一权限管理平台是基于CAS的...

cas配置实现sso登录

  • 2014年11月06日 00:18
  • 11.89MB
  • 下载

CAS框架SSO的实现

  • 2012年03月05日 17:11
  • 8.66MB
  • 下载

【SSO】——使用CAS实现二级域名不同的网站的单点登录(二)

回顾上一篇文章中,实现了二级域名相同的网站的单点登录的效果。但是利用上篇文章的方式不能满足诸如:www.blog.com和www.news.com这样二级域名不同的网站的单点登录。 问题出在哪呢? 就...

Yale CAS 3.3实现SSO详细教程。

  • 2009年10月14日 11:23
  • 2.29MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用cas实现sso的方法
举报原因:
原因补充:

(最多只允许输入30个字)