新书推介:《语义网技术体系》
作者:瞿裕忠,胡伟,程龚
   XML论坛     W3CHINA.ORG讨论区     计算机科学论坛     SOAChina论坛     Blog     开放翻译计划     新浪微博  
 
  • 首页
  • 登录
  • 注册
  • 软件下载
  • 资料下载
  • 核心成员
  • 帮助
  •   Add to Google

    >> 本版讨论Java, J2SE, J2ME, J2EE, 以及Eclipse, NetBeans, JBuilder等Java开发环境,还有JSP, JavaServlet, JavaBean, EJB以及struts, hibernate, spring, webwork2, Java 3D, JOGL等相关技术。
    [返回] 中文XML论坛 - 专业的XML技术讨论区计算机技术与应用『 Java/Eclipse 』 → 一个yale-cas实现单点登录的简单例子实现 查看新帖用户列表

      发表一个新主题  发表一个新投票  回复主题  (订阅本版) 您是本帖的第 54725 个阅读者浏览上一篇主题  刷新本主题   树形显示贴子 浏览下一篇主题
     * 贴子主题: 一个yale-cas实现单点登录的简单例子实现 举报  打印  推荐  IE收藏夹 
       本主题类别:     
     菜籽 帅哥哟,离线,有人找我吗?双鱼座1981-2-28
      
      
      威望:5
      头衔:软件民工
      等级:研二(Sowa的知识表示写得真好!)
      文章:875
      积分:5655
      门派:XML.ORG.CN
      注册:2004/7/25

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给菜籽发送一个短消息 把菜籽加入好友 查看菜籽的个人资料 搜索菜籽在『 Java/Eclipse 』的所有贴子 点击这里发送电邮给菜籽 引用回复这个贴子 回复这个贴子 查看菜籽的博客楼主
    发贴心情 一个yale-cas实现单点登录的简单例子实现

    Yale CAS (Central Authentication Service,中央认证服务)是耶鲁大学的一个开源项目。它为耶鲁大学的网络应用提供了一种标准的用户认证服务,从而实现了SSO的功能。
    Yale CAS被设计成为一个独立的网络应用程序,它使用JavaS ervlet技术实现,可以作为用户身份认证模块加入到网络应用中。
    他的实现的小例子,网上有很多版本,可是总是配置不成功,现在总结一下自己的配置过程。希望对各位网友有所帮助。
    Tomcat5.5.9
    Jdk 1.5.0.1
    按照如下的配置成功:
    1首先我打开tomcat5.5的SSL
    修改Tomcat配置文件server.xml,去掉对于SSL的注释,即开放8443端口,注意这里需要在connector字段中加入keystorePass="password"参数,password即为上面几步中涉及到的密码
    2.生成安全证书
    %java_home%\bin\keytool -genkey -alias tomcat -keyalg RSA
    密码是:changeit
    姓名是:localhost
    其他随便写的
    之后是
    %java_home%\bin\keytool -export -alias tomcat -file server.crt

    %java_home%\bin\keytool -import -file server.crt -keystore %java_home%/jre/lib/security/cacerts

    3.将CAS server3.0.2中target目录中的CAS.war复制到%tomcat_home%\webapps目录下.
    4.将cas-client-java-2.1.1\dist\casclient.jar文件复制到%tomcat_home%\common\lib中
    5.修改tomcat自带的servlet-examples的web.xml, 加入cas的过滤器:
    <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:8080</param-value>
        </init-param>
    </filter>

    <filter-mapping>
        <filter-name>CASFilter</filter-name>
        <url-pattern>/servlet/*</url-pattern>
    </filter-mapping>
    <filter-mapping>
    <filter-name>CAS Filter</filter-name>
    <url-pattern>/*</url-pattern>
    </filter-mapping>

    6.启动tomcat !,CAS.war文件被自动在webapps下释放出CAS目录
    进入https://localhost:8443/servlets-examples, 被自动转发到CAS的登陆页面.

    说明:
    这篇实现原理并没有全部完成


    在安装和配置CAS时, 我遇到了一个很尴尬的问题, 大家在用的时候要小心
    我是按照下面这篇文章中提到的配置步骤进行配置的
    http://www-128.ibm.com/developerworks/web/library/wa-singlesign/
    注意:文章中直接给出了需要在web.xml中加入CAS filter的代码
    大家注意这段;

    edu.yale.its.tp.cas.client.filter.serverName
    localhost

    中的值是localhost, 这是绝对不行的!一定要加上端口号:如localhost:8443,否则当你在CAS登陆界面中输入完用户名和密码后,将无法redirect回你想要的app,你只能看到"无法显示该页"的错误页面!!

    还有就是制作一个自签名的credential了, 在生成keystore文件的时候密码是:changeit(这是tomcat默认的),你的名字一定要是:localhost,当然这是你需要把CAS client和CAS server放在同一台机器上进行测试用的.


       收藏   分享  
    顶(0)
      




    ----------------------------------------------
    重拾英语...

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/1/14 21:54:00
     
     菜籽 帅哥哟,离线,有人找我吗?双鱼座1981-2-28
      
      
      威望:5
      头衔:软件民工
      等级:研二(Sowa的知识表示写得真好!)
      文章:875
      积分:5655
      门派:XML.ORG.CN
      注册:2004/7/25

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给菜籽发送一个短消息 把菜籽加入好友 查看菜籽的个人资料 搜索菜籽在『 Java/Eclipse 』的所有贴子 点击这里发送电邮给菜籽 引用回复这个贴子 回复这个贴子 查看菜籽的博客2
    发贴心情 
    一个yale-cas实现单点登录的简单例子实现
    发现上面的写点有点问题,修改一下
    Tomcat5.5.9
    Jdk 1.5.0.1
    按照如下的配置成功:
    1首先我打开tomcat5.5的SSL
    修改Tomcat配置文件server.xml,去掉对于SSL的注释,即开放8443端口
    (注意:不用添加任何东西)
    2.生成安全证书
    首先在命令行中切换到 %java_home%\jre\lib\security目录
    %java_home%\bin\keytool -genkey -alias tomcat -keyalg RSA
    密码是:changeit
    姓名是:localhost
    其他随便写的
    之后是
    %java_home%\bin\keytool -export -alias tomcat -file server.crt

    %java_home%\bin\keytool -import -file server.crt -keystore %java_home%/jre/lib/security/cacerts
    3.将CAS server3.0.2中target目录中的CAS.war复制到%tomcat_home%\webapps目录下.
    (或者\cas-server-2.0.12\lib目录中的CAS.war也可以)
    4.将cas-client-java-2.1.1\dist\casclient.jar文件复制到%tomcat_home%\webapps\servlets-examples\WEB-INF\lib中(没有lib文件夹,自己建一个)
    5.修改tomcat自带的servlet-examples的web.xml, 加入cas的过滤器:
    <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:8080</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>CASFilter</filter-name>
        <url-pattern>/servlet/*</url-pattern>
    </filter-mapping>
    6.启动tomcat !,CAS.war文件被自动在webapps下释放出CAS目录
    进入https://localhost:8080/servlets-examples, 被自动转发到CAS的登陆页面.
    输入相同的用户名和密码,之后跳转回原来页面
    注意:
    在制作一个自签名的credential了, 在生成keystore文件的时候密码是:changeit(这是tomcat默认的),你的名字一定要是:localhost,当然这是你需要把CAS client和CAS server放在同一台机器上进行测试用的.

    [此贴子已经被作者于2006-2-10 23:59:29编辑过]

    ----------------------------------------------
    重拾英语...

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/2/10 18:38:00
     
     菜籽 帅哥哟,离线,有人找我吗?双鱼座1981-2-28
      
      
      威望:5
      头衔:软件民工
      等级:研二(Sowa的知识表示写得真好!)
      文章:875
      积分:5655
      门派:XML.ORG.CN
      注册:2004/7/25

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给菜籽发送一个短消息 把菜籽加入好友 查看菜籽的个人资料 搜索菜籽在『 Java/Eclipse 』的所有贴子 点击这里发送电邮给菜籽 引用回复这个贴子 回复这个贴子 查看菜籽的博客3
    发贴心情 
    上面的步骤在用
    tomcat 5.0.30
    jdk1.4.2
    版本下测试通过
    步骤完全一样,谢谢大家支持。
    上面步骤中 https://localhost:8080/servlets-examples ,有错误,改正为
    http://localhost:8080/servlets-examples,

    一个yale-cas实现单点登录的简单例子实现
    发现上面的写点有点问题,修改一下
    Tomcat5.5.9
    Jdk 1.5.0.1
    按照如下的配置成功:
    1首先我打开tomcat5.5的SSL
    修改Tomcat配置文件server.xml,去掉对于SSL的注释,即开放8443端口
    (注意:不用添加任何东西)
    2.生成安全证书
    首先在命令行中切换到 %java_home%\jre\lib\security目录
    %java_home%\bin\keytool -genkey -alias tomcat -keyalg RSA
    密码是:changeit
    姓名是:localhost
    其他随便写的
    之后是
    %java_home%\bin\keytool -export -alias tomcat -file server.crt

    %java_home%\bin\keytool -import -file server.crt -keystore %java_home%/jre/lib/security/cacerts
    3.将CAS server3.0.2中target目录中的CAS.war复制到%tomcat_home%\webapps目录下.
    (或者\cas-server-2.0.12\lib目录中的CAS.war也可以)
    4.将cas-client-2.0.11\java\lib文件复制到%tomcat_home%\webapps\servlets-examples\WEB-INF\lib中(没有lib文件夹,自己建一个)
    5.修改tomcat自带的servlet-examples的web.xml, 加入cas的过滤器:

    <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:8080</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>CASFilter</filter-name>
        <url-pattern>/servlet/*</url-pattern>
    </filter-mapping>
    6.启动tomcat !,CAS.war文件被自动在webapps下释放出CAS目录
    进入http://localhost:8080/servlets-examples,随便点击一个Execute,系统 被自动转发到CAS的登陆页面.
    输入相同的用户名和密码,之后跳转回原来页面
    注意:
    在制作一个自签名的credential了, 在生成keystore文件的时候密码是:changeit(这是tomcat默认的),你的名字一定要是:localhost,当然这是你需要把CAS client和CAS server放在同一台机器上进行测试用的.

    [此贴子已经被作者于2006-2-13 17:20:49编辑过]

    ----------------------------------------------
    重拾英语...

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/2/12 21:31:00
     
     gladone 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:3
      积分:68
      门派:XML.ORG.CN
      注册:2006/2/20

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给gladone发送一个短消息 把gladone加入好友 查看gladone的个人资料 搜索gladone在『 Java/Eclipse 』的所有贴子 引用回复这个贴子 回复这个贴子 查看gladone的博客4
    发贴心情 
    谢谢大侠的指导,我按步骤执行到最后,能访问CAS的登陆页面.但是输入用户名和密码后
    Tomcat报错如下:javax.servlet.ServletException: java.security.cert.CertificateException: Couldn't find trusted certificate
    请各位高手指教。谢谢!
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/2/20 12:47:00
     
     菜籽 帅哥哟,离线,有人找我吗?双鱼座1981-2-28
      
      
      威望:5
      头衔:软件民工
      等级:研二(Sowa的知识表示写得真好!)
      文章:875
      积分:5655
      门派:XML.ORG.CN
      注册:2004/7/25

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给菜籽发送一个短消息 把菜籽加入好友 查看菜籽的个人资料 搜索菜籽在『 Java/Eclipse 』的所有贴子 点击这里发送电邮给菜籽 引用回复这个贴子 回复这个贴子 查看菜籽的博客5
    发贴心情 
    按照3楼的做法:
    又一步
    2.生成安全证书
    首先在命令行中切换到 %java_home%\jre\lib\security目录

    就是:
    把certificate加到%JDK_HOME%\jre\lib\securitycacerts

    你再试试

    ----------------------------------------------
    重拾英语...

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/2/20 19:29:00
     
     gladone 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:3
      积分:68
      门派:XML.ORG.CN
      注册:2006/2/20

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给gladone发送一个短消息 把gladone加入好友 查看gladone的个人资料 搜索gladone在『 Java/Eclipse 』的所有贴子 引用回复这个贴子 回复这个贴子 查看gladone的博客6
    发贴心情 
    我按照你的步骤重新在%java_home%\jre\lib\security目录下输入这三个命令,结果没有变化。
    我的jdk版本是j2sdk1.4.2_02;tomcat版本是5.0
    刚才又将JDK的环境重新配置并再次生成证书,还是不行。大侠救命哪~~~


    [此贴子已经被作者于2006-2-20 21:41:58编辑过]
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/2/20 21:09:00
     
     菜籽 帅哥哟,离线,有人找我吗?双鱼座1981-2-28
      
      
      威望:5
      头衔:软件民工
      等级:研二(Sowa的知识表示写得真好!)
      文章:875
      积分:5655
      门派:XML.ORG.CN
      注册:2004/7/25

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给菜籽发送一个短消息 把菜籽加入好友 查看菜籽的个人资料 搜索菜籽在『 Java/Eclipse 』的所有贴子 点击这里发送电邮给菜籽 引用回复这个贴子 回复这个贴子 查看菜籽的博客7
    发贴心情 
    列出你的每步的的结果,还有错误信息

    ----------------------------------------------
    重拾英语...

    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/2/21 9:36:00
     
     gladone 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:3
      积分:68
      门派:XML.ORG.CN
      注册:2006/2/20

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给gladone发送一个短消息 把gladone加入好友 查看gladone的个人资料 搜索gladone在『 Java/Eclipse 』的所有贴子 引用回复这个贴子 回复这个贴子 查看gladone的博客8
    发贴心情 
    1.在命令行下转到C:\j2sdk1.4.2_02\jre\lib\security\(java_home在C:\j2sdk1.4.2_02);
    2.输入C:\j2sdk1.4.2_02\bin\keytool -genkey -alias tomcat -keyalg RSA,提示“输入keystore密码:”,输入changeit后添加信息,将username设为localhost,其他随便写;
    3.生成后输入C:\j2sdk1.4.2_02\bin\keytool -export -alias tomcat -file server.crt输入密码后提示保存在server.crt;
    4.输入C:\j2sdk1.4.2_02\bin\keytool -import -file server.crt -keystore C:\j2sdk1.4.2_02\jre\lib\security\cacerts,输入密码后按“y” 提示添加进cacerts;
    5.启动tomcat,进入servlets-examples页面,按任意一个“Execute”,提示“即将通过安全连接访问网络”,确定后进入CAS页面,输入相同的用户和密码后,提示“离开安全连接”,确定后出现错误:javax.servlet.ServletException: java.security.cert.CertificateException: Couldn't find trusted certificate
     edu.yale.its.tp.cas.client.filter.CASFilter.getAuthenticatedUser(CASFilter.java:254)
     edu.yale.its.tp.cas.client.filter.CASFilter.doFilter(CASFilter.java:184)
    javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: Couldn't find trusted certificate
     com.sun.net.ssl.internal.ssl.BaseSSLSocketImpl.a(DashoA6275)
     com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
     com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
     com.sun.net.ssl.internal.ssl.SunJSSE_az.a(DashoA6275)
     com.sun.net.ssl.internal.ssl.SunJSSE_az.a(DashoA6275)
     com.sun.net.ssl.internal.ssl.SunJSSE_ax.a(DashoA6275)
     com.sun.net.ssl.internal.ssl.SSLSocketImpl.a(DashoA6275)
     com.sun.net.ssl.internal.ssl.SSLSocketImpl.j(DashoA6275)
     com.sun.net.ssl.internal.ssl.SSLSocketImpl.startHandshake(DashoA6275)
     sun.net.www.protocol.https.HttpsClient.afterConnect(DashoA6275)
     sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(DashoA6275)
     sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:574)
     sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(DashoA6275)
     edu.yale.its.tp.cas.util.SecureURL.retrieve(SecureURL.java:70)
     edu.yale.its.tp.cas.client.ServiceTicketValidator.validate(ServiceTicketValidator.java:212)
     edu.yale.its.tp.cas.client.filter.CASFilter.getAuthenticatedUser(CASFilter.java:219)
     edu.yale.its.tp.cas.client.filter.CASFilter.doFilter(CASFilter.java:184)
    我的CAS-server是2.0.12,cas-client是2.0.11
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/2/21 10:00:00
     
     gladone 帅哥哟,离线,有人找我吗?
      
      
      等级:大一新生
      文章:3
      积分:68
      门派:XML.ORG.CN
      注册:2006/2/20

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给gladone发送一个短消息 把gladone加入好友 查看gladone的个人资料 搜索gladone在『 Java/Eclipse 』的所有贴子 引用回复这个贴子 回复这个贴子 查看gladone的博客9
    发贴心情 
    我换了tomcat的版本,在5.0.28下重新配置了一遍,顺利通过了,谢谢!
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/2/27 9:45:00
     
     skycas 美女呀,离线,快来找我吧!
      
      
      等级:大一新生
      文章:0
      积分:55
      门派:XML.ORG.CN
      注册:2006/4/16

    姓名:(无权查看)
    城市:(无权查看)
    院校:(无权查看)
    给skycas发送一个短消息 把skycas加入好友 查看skycas的个人资料 搜索skycas在『 Java/Eclipse 』的所有贴子 引用回复这个贴子 回复这个贴子 查看skycas的博客10
    发贴心情 
    为什么我第一次
    用按execute后
    会出现找不到服务器。
    点击查看用户来源及管理<br>发贴IP:*.*.*.* 2006/4/16 22:28:00
     
     GoogleAdSense
      
      
      等级:大一新生
      文章:1
      积分:50
      门派:无门无派
      院校:未填写
      注册:2007-01-01
    给Google AdSense发送一个短消息 把Google AdSense加入好友 查看Google AdSense的个人资料 搜索Google AdSense在『 Java/Eclipse 』的所有贴子 访问Google AdSense的主页 引用回复这个贴子 回复这个贴子 查看Google AdSense的博客广告
    2024/4/27 14:43:41

    本主题贴数14,分页: [1] [2]

    管理选项修改tag | 锁定 | 解锁 | 提升 | 删除 | 移动 | 固顶 | 总固顶 | 奖励 | 惩罚 | 发布公告
    W3C Contributing Supporter! W 3 C h i n a ( since 2003 ) 旗 下 站 点
    苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
    125.000ms