在Tomcat中使用Yale CAS实现单点登陆(SSO) - 程序世界 - CSDNBl...
来源:百度文库 编辑:神马文学网 时间:2024/04/20 22:22:25
在Tomcat中使用Yale CAS实现单点登陆(SSO)
耶鲁大学开发的单点登录系统称为CAS(Central Authentication Server)被设计成一个独立的Web应用程序(cas.war)。它目前用几个JavaServlet作为实现并且通过一个Https服务器来运行。要使用单点登陆功能的Web应用作为CAS的一个客户端来运行。
由于CAS使用Https协议,所以首先要知道如何在容器中配置SSL。Tomcat的SSL配置相对其它的容器较为简单,SSL配置完成后CAS服务器一般都能正常运行了。
CAS的客户端以一个Web应用的Filter运行。当Web应用的某个功能被请求时,Filter就会拦截应用的URL,从而迫使用户到CAS服务器进行登陆。在所有不同的Web应用中,使用同一个CAS服务器进行登陆,即可达到单点登陆之目的。
本文使用同一个Tomcat(版本Tomcat5.0.30)配置CAS服务器及客户端,分别在8443端口及8080端口。下面是在Tomcat中使用YaleCAS实现单点登陆的详细步骤:
1. 安装CAS服务器
1.1. 下载CAS发行包,下载地址:
CAS服务器:http://www.yale.edu/tp/cas/cas-server-2.0.12.zip或
https://clearinghouse.ja-sig.org/wiki/download/attachments/924/cas-server-2.0.12.zip
CAS客户端:http://www.yale.edu/tp/cas/cas-client-2.0.11.zip或
https://clearinghouse.ja-sig.org/wiki/download/attachments/827/cas-client-2.0.11.zip
1.2. 将cas-server-2.0.12.zip解压,并将lib/cas.war拷贝到Tomcat的webapps下,测试CAS服务器是否发布正常,可以访问http://localhost:8080/cas/login 出现登陆窗口。输入用户名密码(用户名=密码),出现登陆成功页面说明发布正常。
2. 配置Tomcat使用https协议
2.1. 使用Java自带的keytool命令,产生SERVER的证书
D:\> keytool-genkey -alias my-alias-name -keyalg RSA -keystore keystore-file
其中my-alias-name为别名,这行命令的作用是产生一个新的公共/私有钥匙对。keystore-file为存储钥匙和证书的文件。
命令运行后,根据提示回答。注意在开始问“你的名字”或“DName”的时候,必须填写你服务器所在域名(在局域网中测试时,使用主机名或hosts文件中注册的域名,本机可以使用localhost)。
2.2. 在Tomcat的8443端口配置SSL
在Tomcat_Path\conf\server.xml文件中配置SSL的地方,增加如下配置:
port="8443"minProcessors="5" maxProcessors="75"
enableLookups="true"disableUploadTimeout="true"
acceptCount="100"debug="0" scheme="https"
secure="true">
keystoreFile="D:/keystore-file"
keystorePass="password"clientAuth="false" protocol="TLS" />
其中,keystoreFile使用绝对路径,keystorePass为第3点输入的keystore密码。配置完成后,启动Tomcat,访问https://localhost:8443 ,访问成功说明SSL配置成功。也可以访问https://localhost:8443/cas/login 。
3. 配置 CAS客户端
以Tomcat中自带的Servlet examples应用为例,在Web应用中使用配置CAS客户端。
3.1. 在Servlet examples应用里配置CAS客户端,需修改servlets-examples/WEB-INF/web.xml,在web.xml文件中,加入如下Filter配置:
CASFilter
edu.yale.its.tp.cas.client.filter.CASFilter
edu.yale.its.tp.cas.client.filter.loginUrl
https://localhost:8443/cas/login
edu.yale.its.tp.cas.client.filter.validateUrl
https://localhost:8443/cas/proxyValidate
edu.yale.its.tp.cas.client.filter.serverName
localhost:8080
CASFilter
/servlet/*
其中,第一,二个localhost都改成CAS服务器域名或主机名,第三个改成你servelt example应用域名或主机名,由于本文中CAS服务器与客户端在同一主机同一Tomcat上,所以都为localhost。若不在同一主机,则分别使用两主机的域名或主机名。
3.2. 将cas-client-2.0.11.zip解压,把java/lib/casclient.jar拷贝到Tomcat的
webapps/servlets-examples/WEB-INF/lib目录下(如果没有就建一个)
3.3. 导出SERVER的证书,用来给所有需要用到的客户端导入
D:\> keytool -export-file myserver.cert -alias my-alias-name -keystore keystore-file
3.4. 在客户端的JVM里导入信任的SERVER的证书,输入keystore密码时,注意现在的keystore为cacerts,而cacerts的初密码为changeit,而不是前面keystore-file的密码,所以要是没有改过cacerts密码应该输入changeit.
D:\> keytool -import-keystore $JAVA_HOME/jre/lib/security/cacerts -file myserver.cert -aliasmy-alias-name
其中,$JAVA_HOME改成JDK的绝对路径。
4. 测试SSO
启动Tomcat,访问http://localhost:8080/servlets-examples/ ,随便执行一个servlet,系统会自动跳转到一个验证页面,随便输入一个相同的账号,密码,认证通过之后,就会访问到你点击的servlet了。
耶鲁大学开发的单点登录系统称为CAS(Central Authentication Server)被设计成一个独立的Web应用程序(cas.war)。它目前用几个JavaServlet作为实现并且通过一个Https服务器来运行。要使用单点登陆功能的Web应用作为CAS的一个客户端来运行。
由于CAS使用Https协议,所以首先要知道如何在容器中配置SSL。Tomcat的SSL配置相对其它的容器较为简单,SSL配置完成后CAS服务器一般都能正常运行了。
CAS的客户端以一个Web应用的Filter运行。当Web应用的某个功能被请求时,Filter就会拦截应用的URL,从而迫使用户到CAS服务器进行登陆。在所有不同的Web应用中,使用同一个CAS服务器进行登陆,即可达到单点登陆之目的。
本文使用同一个Tomcat(版本Tomcat5.0.30)配置CAS服务器及客户端,分别在8443端口及8080端口。下面是在Tomcat中使用YaleCAS实现单点登陆的详细步骤:
1. 安装CAS服务器
1.1. 下载CAS发行包,下载地址:
CAS服务器:http://www.yale.edu/tp/cas/cas-server-2.0.12.zip或
https://clearinghouse.ja-sig.org/wiki/download/attachments/924/cas-server-2.0.12.zip
CAS客户端:http://www.yale.edu/tp/cas/cas-client-2.0.11.zip或
https://clearinghouse.ja-sig.org/wiki/download/attachments/827/cas-client-2.0.11.zip
1.2. 将cas-server-2.0.12.zip解压,并将lib/cas.war拷贝到Tomcat的webapps下,测试CAS服务器是否发布正常,可以访问http://localhost:8080/cas/login 出现登陆窗口。输入用户名密码(用户名=密码),出现登陆成功页面说明发布正常。
2. 配置Tomcat使用https协议
2.1. 使用Java自带的keytool命令,产生SERVER的证书
D:\> keytool-genkey -alias my-alias-name -keyalg RSA -keystore keystore-file
其中my-alias-name为别名,这行命令的作用是产生一个新的公共/私有钥匙对。keystore-file为存储钥匙和证书的文件。
命令运行后,根据提示回答。注意在开始问“你的名字”或“DName”的时候,必须填写你服务器所在域名(在局域网中测试时,使用主机名或hosts文件中注册的域名,本机可以使用localhost)。
2.2. 在Tomcat的8443端口配置SSL
在Tomcat_Path\conf\server.xml文件中配置SSL的地方,增加如下配置:
enableLookups="true"disableUploadTimeout="true"
acceptCount="100"debug="0" scheme="https"
secure="true">
keystorePass="password"clientAuth="false" protocol="TLS" />
其中,keystoreFile使用绝对路径,keystorePass为第3点输入的keystore密码。配置完成后,启动Tomcat,访问https://localhost:8443 ,访问成功说明SSL配置成功。也可以访问https://localhost:8443/cas/login 。
3. 配置 CAS客户端
以Tomcat中自带的Servlet examples应用为例,在Web应用中使用配置CAS客户端。
3.1. 在Servlet examples应用里配置CAS客户端,需修改servlets-examples/WEB-INF/web.xml,在web.xml文件中,加入如下Filter配置:
其中,第一,二个localhost都改成CAS服务器域名或主机名,第三个改成你servelt example应用域名或主机名,由于本文中CAS服务器与客户端在同一主机同一Tomcat上,所以都为localhost。若不在同一主机,则分别使用两主机的域名或主机名。
3.2. 将cas-client-2.0.11.zip解压,把java/lib/casclient.jar拷贝到Tomcat的
webapps/servlets-examples/WEB-INF/lib目录下(如果没有就建一个)
3.3. 导出SERVER的证书,用来给所有需要用到的客户端导入
D:\> keytool -export-file myserver.cert -alias my-alias-name -keystore keystore-file
3.4. 在客户端的JVM里导入信任的SERVER的证书,输入keystore密码时,注意现在的keystore为cacerts,而cacerts的初密码为changeit,而不是前面keystore-file的密码,所以要是没有改过cacerts密码应该输入changeit.
D:\> keytool -import-keystore $JAVA_HOME/jre/lib/security/cacerts -file myserver.cert -aliasmy-alias-name
其中,$JAVA_HOME改成JDK的绝对路径。
4. 测试SSO
启动Tomcat,访问http://localhost:8080/servlets-examples/ ,随便执行一个servlet,系统会自动跳转到一个验证页面,随便输入一个相同的账号,密码,认证通过之后,就会访问到你点击的servlet了。
在Tomcat中使用Yale CAS实现单点登陆(SSO) - 程序世界 - CSDNBl...
在Tomcat中使用Yale CAS实现单点登陆(SSO) 文章合集dsf
Liferay中使用CAS实现单点登陆(SSO)
用Yale CAS Server 来实现单点登陆(SSO)
实现单点登陆(SSO)
使用cas实现sso
计算机科学论坛--一个yale-cas实现单点登录的简单例子实现
Liferay的CAS SSO实现思路
单点登录-sso
SSO 单点登录
源代码解读Cas实现单点登出(single sign out)功能实现原理
在tomcat中实现https安全连接的方法
|在C#程序中实现插件架构
应用整合中SSO的技术实现
WebSphere环境下的SSO(Single sign-on:单点登录、全网漫游)实现之...
Jetspeed2.0中单点登录的实现
Jetspeed2.0中单点登录的实现
单点登录SSO技术资料收集
单点登录SSO技术资料收集
在jsp程序中使用com组件
在jsp程序中使用com组件
SSO单点登录解决方案[转载] - 走在架构师的大道上 Jack.Wang's home ...
在tomcat中实现https安全连接的方法 - 中文JAVA技术网
在Tomcat中安装JSTL