soothwolf的个人空间_列表_书生读吧 书生读吧官网

CAS (Central Authentication Service)是Yale大学的ITS开发的一套JAVA实现的开源

的SSO(single sign-on)的服务。

这里用一个简单的例子来说明用CAS来实现单点登陆(SSO)。



Yale CAS Server 的配置过程

CAS (Central Authentication Service)是Yale大学的ITS开发的一套JAVA实现的开源

的SSO(single sign-on)的服务。该服务是以一个java web app(eg:cas.war)来进行服务的,

使用时需要将cas.war发布到一个servlet2.3兼容的服务器上,并且服务器需要支持SSL,

在需要使用该服务的其他服务器(客户),只要进行简单的配置就可以实现SSO了。

CAS 的客户端可以有很多种,因为验证的结果是以XML的格式返回的,CAS的客户端已

打包进去的有java,perl,python,asp,apache module等好几种客户端示例,你还可以根据

需要实现一个自己的客户端,非常简单!~

下面我们以tomcat 5.0 为例进行说明(这里,我将Server和Client同时放在了同一个Tomcat服务器下)。

1.下载cas-server和cas-client(可选,建议使用)

http://www.yale.edu/tp/cas/cas-server-2.0.12.zip

http://www.yale.edu/tp/cas/cas-client-2.0.11.zip

2.将cas-server-2.0.12.zip解压,并将lib/cas.war拷贝到webapps下

3.产生SERVER的证书

keytool -genkey -alias tomcat -keyalg RSA [-keystore keystore-file]

4.(在server)配置tomcat使用HTTPS

$CATALINA_HOME/conf/server.xml里

<Connector className="org.apache.coyote.tomcat5.CoyoteConnector"port="8443" minProcessors="5" maxProcessors="75"enableLookups="true" disableUploadTimeout="true"acceptCount="100" debug="0" scheme="https"secure="true"><Factory className="org.apache.coyote.tomcat5.CoyoteServerSocketFactory"keystoreFile="/path/to/your/keystore-file"keystorePass="your-password" clientAuth="false" protocol="TLS" /></Connector>

5.在要使用CAS的客户端应用里设置(以servlets-examples这个APP为例,在应用时,所有客户端均进行类似配置),我们使用ServletFilter(CAS client里提供的)来实现SSO的检查。

修改servlets-examples/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://your.cas.server.name(这里为https://localhost):port(默认为8443)/cas/login</param-value></init-param><init-param><param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name><param-value>https://your.cas.server.name(这里为https://localhost):port(默认为8443)/cas/proxyValidate</param-value></init-param><init-param><param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name><param-value>your.client.server.name(这里为localhsot):port(默认8080)</param-value></init-param></filter><filter-mapping><filter-name>CASFilter</filter-name><url-pattern>/servlet/*</url-pattern></filter-mapping>

6.将cas-client-2.0.11.zip解压,把java/lib/casclient.jar拷贝到client服务器上(这里为同一tomcat)的

webapps/servlets-examples/WEB-INF/lib目录下(如果没有就建一个)

7.导出SERVER的证书,用来给所有需要用到的客户端导入

keytool -export -file myserver.cert -alias my-alias-name -keystore keystore-file

8.在客户端的JVM(这里为同一JVM)里导入信任的SERVER的证书(根据情况有可能需要管理员权限)

keytool -import -keystore $JAVA_HOME/jre/lib/security/cacerts -file myserver.cert -alias tomcat

9.测试.

把server和client分别起来(这里为同一个Tomcat,实际应用时可以在多个服务器上,且client可以为多个应用),检查启动的LOG是否正常,如果一切OK,就访问

http://client1:8080/servlets-examples/servlet/HelloWorldExample

系统会自动跳转到一个验证页面,随便输入一个相同的账号,密码,严正通过之后就会访问

到真正的HelloWorldExample这个servlet了

10.其他

登陆过后,无论多少个client,在各自的session里面有相同的用户信息(用户名),默认的情况下,可以通过session.getAttribute("edu.yale.its.tp.cas.client.filter.user")取得登陆名。
soothwolf的个人空间_列表_书生读吧 书生读吧官网

由于CAS为完全开源项目,可以根据自己项目修改源代码(比如,登陆验证,肯定得根据实际项目修改,以及登陆页面等)。

更多信息请参考

http://www.yale.edu/tp/cas/

http://www-106.ibm.com/developerworks/web/library/wa-singlesign/

  

爱华网本文地址 » http://www.aihuau.com/a/25101011/71973.html

更多阅读

风动护花铃_舒雅萱 舒雅内衣官网

风动护花铃——心事近些天来的一些事情让我焦头烂额,有关于人情也有关于事件本身的令人紧迫的内因,于是,我在一周内便多了那么几夜的难眠。我是一个善于发现身边男子优点的人,他们每个人在我心中似乎也在无形中占有一席之地,然而他们

声明:《soothwolf的个人空间_列表_书生读吧 书生读吧官网》为网友揽风挽你分享!如侵犯到您的合法权益请联系我们删除