`
ske3
  • 浏览: 10137 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

CAS学习笔记(第一次发文,格式不好,请见谅)

阅读更多
1 CAS Server部署
1.1 CAS默认应用搭建
从CAS官方网站下载CAS-Server应用。本人下载的是3.3版本。解压后,在里面的modules目录里可以找到一个WAR包,这个就是CAS的Server应用。换句话说,CAS的Server应用是无需开发的,只需配置即可。将WAR包应用发布到Tomcat下,然后启动Tomcat。通过浏览器访问CAS应用,此时可以看见一个登录界面。在“用户名”和“密码”框中输入相同的字符串,单击“登录”即可。如果登录成功,则证明CAS的Server应用搭建成功。接下来,我们就需要改变CAS的认证机制。
CAS默认提供很多的认证方式:LDAP、JDBC、自定义等等。
deployerConfigContext.xml文件是CAS用来配置认证方式的配置文件,如果需要修改CAS的认证方式,就需要修改该文件中的authenticationHandlers节点内容。
1.2 通过JDBC进行用户认证
CAS的JDBC认证分为:SearchModeSearchDatabaseAuthenticationHandler和QueryDatabaseAuthenticationHandler等多种方式。它们的区别在于:前者是指定用户表以及表中的相关字段,后者是指定认证用的SQL语句。
1.2.1 配置SearchModeSearchDatabaseAuthenticationHandler方式
修改CAS的认证方式,在authenticationHandlers节点,并追加一个BEAN,用来配置数据库链接。案例见附件:deployerConfigContext-jdbc.xml
拷贝spring-jdbc-2.5.5.jar、commons-collections-3.2.jar、commons-dbcp-1.2.1.jar、commons-pool-1.3.jar 、cas-server-support-jdbc-3.3.jar到CAS的Server应用中。启动Tomcat,如此既可。
1.2.2 配置QueryDatabaseAuthenticationHandler方式
修改CAS的认证方式,在authenticationHandlers节点,并追加一个BEAN,用来配置数据库链接。案例见附件:deployerConfigContext-jdbc-query.xml
拷贝spring-jdbc-2.5.5.jar、commons-collections-3.2.jar、commons-dbcp-1.2.1.jar、commons-pool-1.3.jar、cas-server-support-jdbc-3.3.jar到CAS的Server应用中。启动Tomcat,如此既可。
1.3 通过LDAP进行用户认证

2 CAS  Client部署
首先在我们的WEB应用中,增加CSA Client的JAR包:casclient-2.0.11.jar。接着在我们正式做CAS的Client之间,我们还需要配置我们的Tomcat或其他中间件,使其支持SSL。
2.1 Tomcat上配置SSL
在Tomcat上配置SSL,我们需要一个证书,这个证书我们可以通过JDK自带的keytool工具制作。
2.1.1 证书制作
JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA -keystore C:\tomcat.key
提示输入密码,使用Tomcat的默认值changeit
输入相关信息后确认
将生成PCKS1.2格式的数字证书于C:\tomcat.key
这里需要注意的是“所有者”的设置,该值必须设置成访问应用时的域名。
2.1.2 Server.xml配置
在Tomcat的安装目录下,conf目录里有个Server.xml文件。找到8443端口的Connector,默认情况下是被注释掉的。将其注释去掉,然后增加两个属性:keystoreFile和keystorePass。前者是证书的本地存放目录,后者是该证书的密码(如果我们做证书时使用的是Tomcat的默认密码,即changeit。那么该属性不要亦可)。
启动Tomcat,用HTTPS访问8443端口。看看SSL是否已经启用。
2.2 给JDK增加证书
因为CAS会通过JDK访问HTTPS的服务,故而需要给JDK增加该证书,否则JDK将无法与CAS服务进行通信。
在使用IE通过HTTPS访问应用,产生证书后。右键点击页面,选择“属性”“证书”“详细信息”“复制到文件”。然后安装提示导出证书。
然后,使用keytool工具导入证书。
在${JAVA_HOME}/jre/lib/security/目录下执行如下命令:
keytool  -import -alias cacerts -keystore cacerts -file e:\1.cer -trustcacerts
其中e:\1.cer是证书的本地存放目录。
然后,键入密码:changeit既可。
2.3 使用CAS Client
关于CAS Client的使用,我们可以通过Filter、JSP、Tag等方式使用。这些,CAS的官方网站上都有,本文不再叙述。本文重点讲解通过JAVA代码完成认证。
首先,我们需要配置一个SeverLet,假设ServerLet的URL是:acws_sso。然后,在该ServerLet的代码中增加如下代码:
String caServerUrl = "https://shangkaier:8443/cas";
ServiceTicketValidator sv = new ServiceTicketValidator();
sv.setCasValidateUrl(caServerUrl + "/serviceValidate");
sv.setService("https://shangkaier:8443/acws_sso");
sv.setServiceTicket(request.getParameter("ticket"));
sv.validate();
xmlResponse = sv.getResponse();
if (sv.isAuthenticationSuccesful()) {
user = sv.getUser();
} else {
errorCode = sv.getErrorCode();
errorMessage = sv.getErrorMessage(); /* handle the error */
}
其中,shangkaier即为当初制作证书时的所有者。
2.4 验证
在IE浏览中输入如下地址:
https://shangkaier:8443/cas?service=https://shangkaier:8443/acws_sso
其中https://shangkaier:8443/cas为CA应用地址,https://shangkaier:8443/acws_sso为CA中心登录后,重定向地址。
分享到:
评论
1 楼 sdc_java 2008-11-11  
你的附件在那?

相关推荐

Global site tag (gtag.js) - Google Analytics