海南宠物医院:单点登录学习(1)CAS服务器端配置编程

来源:百度文库 编辑:偶看新闻 时间:2024/05/03 15:21:48
单点登录学习(1)CAS服务器端配置编程
1.配置tomcat7的SSL访问
Step1:生成.keystore文件
命令行:keytool -genkey -keyalg RSA -alias tomcat -dname "cn=localhost" -storepass changeit
回车后会提示输入密码,这里输入的是changeit
导出证书:keytool -export -alias tomcat -file %java_home%/jre/lib/security/tomcat.crt -storepass changeit
导入证书:keytool -import -alias tomcat -file %java_home%/jre/lib/security/tomcat.crt -keystore %java_home%/jre/lib/security/cacerts -storepass changeit
Step2:修改tomcat的配置文件${TOMCAT_HOME}\conf\server.xml
找到这几行
view plainprint?

将其修改为以下代码,注意keystoreFile=“${user.home}/.keystore"就是指向我们刚才生成的keystore文件,keystorePass="changeit"就是我们用keytool生成keystore时设置的密码
view plainprint?
port="8443" minSpareThreads="5" maxSpareThreads="75"
enableLookups="true" disableUploadTimeout="true"
acceptCount="100"  maxThreads="200"
scheme="https" secure="true" SSLEnabled="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="C:/Documents and Settings/Administrator/.keystore"
truststoreFile="D:/work/java_tools/jdk1.6.0_22/jre/lib/security/cacerts"
keystorePass="changeit"/>
这时候通过http://localhost:8443就可以显示tomcat的默认访问页面了
2.下载cas服务器端组件
下载地址:http://www.jasig.org/cas/download
目前的最高版本是CAS Server 3.4.8 Release
3.导入CAS Server Web工程
a) 在eclipse中新建一个web工程,找到下载压缩包里的modules\cas-server-webapp-3.4.8.war文件,将这个文件中的所有内容复制到你新建的web工程下
b)找到下载压缩包里的cas-server-webapp\src\main\java目录,将里面的源文件复制到eclipse工程的src目录中
c)运行工程,访问https://localhost:8443/cas/就可以展示出cas的登录页面了

4.登录
CAS默认的用户名和密码是用的${TOMCAT_HOME}\conf\tomcat-user.xml中配置的用户名和密码,所以只要用这个文件中的任意一个匹配的用户名密码即可登录
如tomcat/tomcat
5.修改cas的验证方式
CAS的认证方式是可配置的,即我们可以通过提供自己的认证方式来替换默认的以Tomcat用户名密码的方式,这个是在WEB-INF\deployerConfigContext.xml文件中指定的
找到 ,我们要做的只是提供另一个验证实现类,该类继承自org.jasig.cas.authentication.handler.AuthenticationException,然后实现authenticateUsernamePasswordInternal方法即可,看我们的例子:
view plainprint?
package com.crazycoder2010.cas.auth;
import org.jasig.cas.authentication.handler.AuthenticationException;
import org.jasig.cas.authentication.handler.support.AbstractUsernamePasswordAuthenticationHandler;
import org.jasig.cas.authentication.principal.UsernamePasswordCredentials;
public class UserNamePasswordAuthenticationHandler extends
AbstractUsernamePasswordAuthenticationHandler {
@Override
protected boolean authenticateUsernamePasswordInternal(
UsernamePasswordCredentials credentials) throws AuthenticationException {
String userName = credentials.getUsername();
String password = credentials.getPassword();
if("kevin".equals(userName) && "111111".equals(password)){
return true;
}
return false;
}
}
这里我们写死了用户名和密码,在实际的生产环境中,这些用户可能是来自数据库,那么只要进行相关的jdbc操作即可
类写完后,到配置文件中替换先前的即可
重启tomcat,再次出现登录页面时,输入用户名kevin,密码为111111登录成功