经过三四天的努力,终于实现了单点登录了。参考的文章是《yale_CAS完整版教程.doc》,因为总想把自己的名字替换wsria也折腾了一下自己。能经得起折腾是好事,让你碰到更多的问题,在解决问题的时候,你就成长了!原生的SSO已经搭建好了,有了这个基础,下面就是深入学习公司改造过的SSO
1.生成没有后缀的文件的时候要求输入您的名字与姓氏时要输入的是域名sso.zgy.com,然后在etc\hosts中添加配置
2.为JRE导入证书时JRE路径不能带空格
3.应用证书到Web服务器-Tomcat,我最后的配置是:
注意这里要加trustStore,原文没有不知道为什么可以,反正我是不行,客户端在成功验证后,执行跳转会报https安全问题:
InvalidAlgorithmParameterException: the trustAnchors parameter must be non empt
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="E:\CAS\Keystore\zgy"
keystorePass="keystore"
trustStore="D://Java//jre6//lib//security//cacerts"
/>
4.配置客户端,下面是最简配置
标记为红色的应可以提取出来,执行票据验证成功后就跳转到这个域名
<!-- 该过滤器负责用户的认证工作,必须启用它 -->
<filter>
<filter-name>CASFilter</filter-name>
<filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>
<init-param>
<param-name>casServerLoginUrl</param-name>
<param-value>https://sso.zgy.com:8443/cas/login</param-value>
<!--这里的server是服务端的IP-->
</init-param>
<init-param>
<param-name>serverName</param-name>
<param-value>https://sso.zgy.com:8443</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CASFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 该过滤器负责对Ticket的校验工作,必须启用它 -->
<filter>
<filter-name>CAS Validation Filter</filter-name>
<filter-class>
org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter</filter-class>
<init-param>
<param-name>casServerUrlPrefix</param-name>
<param-value>https://sso.zgy.com:8443/cas</param-value>
</init-param>
<init-param>
<param-name>serverName</param-name>
<param-value>https://sso.zgy.com:8443</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CAS Validation Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
5.MyEclipse在为Tomcat配置JDK的时候就不能默认了,要使用添加过证书认证的JRE