1、三. 实践配置下面我们以tomcat 5.5 为例进行说明(这里,我将Server和Client同时放在了同一个Tomcat服务器下)。软件环境:tomcat 5.5 ant-1.6.5, jdk1.5.0_06下载cas-server-3.0.4.zip和cas-client和cas-server-jdbc-3.0.5-rc2.jar和mysql 5.0.16和tomcat 5.5.15 http:/www.ja-sig.org/downloads/cas/cas-server-3.0.4.zip http:/www.yale.edu/tp/cas/cas-client-2.0.11.zip
2、/developer.ja-sig.org/maven/cas/jars/cas-server-jdbc-3.0.5-rc2.jar/tomcat.apache.org/(一) 将一个或者一些页面进行支持HTTPS传输协议(意义:对某些页面进行了安全传输)(重点掌握)1. 产生SERVER的证书库文件keytool -genkey -alias tomcat -keyalg RSA -keystore keystore-file并将证书文件放在web容器的目录下。2. (在server端)配置tomcat使用HTTPS$CATALINA_HOME/conf/server.xml里 注意:key
3、storePass=(这个问证书库文件的密码,也就是上面配置产生的一个密码) keystoreFile=/.keystore(这是证书库文件的存放路径,其中根目录“/”为tomcat的安装路径)3. 在WEB-INFweb.xml文件中增加 web-resource-collection web-resource-name SSL!-名字随便取-url-pattern/jsp2/el/*/web-resource-collectionuser-data-constrainttransport-guaranteeCONFIDENTIAL/user-data-constraint/security
4、-constraint解释:transport-guarantee元素指定了客户端和服务端的通信关系,有NONE,INTEGRAL,CONFIDENTIAL。NONE表示着应用不需要任何传输保障。INTEGRAL表示着在数据在客户端到服务端的过程中不能有任何改变。CONFIDENTIAL表示在传输过程中防止其他传输内容的干扰。在使用SSl时常用的就INTEGRAL或CONFIDENTIL。4. 进行访问测试(二) 实现CAS系统3. 将cas-server-3.0.4.zip解压,并将target/cas.war拷贝到webapps下。4. 将cas-client-2.0.11.zip解压,把
5、cas-client-2.0.11javalibcasclient.jar拷贝到client服务器上(这里为同一tomcat)的书生读吧_wn_L;G&m0,w g_i_F9pwebapps/servlets-examples/WEB-INF/lib目录下(如果没有就建一个)5. 在要使用CAS的客户端应用里设置(以servlets-examples这个APP为例,在应用时,所有客户端均进行类似配置),我们使用ServletFilter(CAS client里提供的)来实现SSO的检查。修改servlets-examples/WEB-INF/web.xmlfilterfilter-nameCA
6、SFilterfilter-classedu.yale.its.tp.cas.client.filter.CASFilterinit-paramparam-nameedu.yale.its.tp.cas.client.filter.loginUrlparam-valuehttps:/your.cas.server.name:port/cas/login/init-paramedu.yale.its.tp.cas.client.filter.validateUrl /cas/proxyValidateedu.yale.its.tp.cas.client.filter.serverNameyour
7、.client.server.name:port /filterfilter-mapping/servlet/*配置好的例子: /localhost:8443/cas/login8443/cas/proxyValidate localhost:8080/*6. 7.导出SERVER端的的证书文件(证书文件只包含公钥)书生读吧_*S_-Ekeytool -export -file myserver.crt -alias my-alias-name -keystore keystore-file/ keytool -export -file myserver.crt -alias tomcat -
8、keystore .keystore /Z0ts) o0书生读吧_v_w_l;T_U9Q& J2DS a在客户端的JVM里的证书库cacerts中导入信任的SERVER的证书(根据情况有可能需要管理员权限)8yt*!O1Y7. s0keytool -import -keystore cacerts -file myserver.crt -alias hostname(别名)然后将cacerts 复制到%JAVA_HOME%/jre/lib/security/目录下/keytool -import -keystore cacerts -file myserver.crt -alias tomca
9、t书生读吧 _n *D_y0t F!I_|书生读吧_m_Z4c_G 5E)R_Z/i n测试.书生读吧!L_m_A_tA_B a(r_n把server和client分别起来(这里为同一个Tomcat,实际应用时可以在多个服务器上,且client可以为多个应用),检查启动的LOG是否正常,如果一切OK,就访问8. Q*R:N_u._5rJ_Y_i_o9x0http:8080/servlets-examples/servlet/HelloWorldExample_k7YBe:z:_g0系统会自动跳转到一个验证页面,随便输入一个相同的账号,密码,验正通过之后就会访问_T h1|8Y_k_a$G6q
10、k0到真正的HelloWorldExample这个servlet了四. 结合实际的环境的扩展1 多个web应用如何实现单点登陆(!大家思考一下:如果我想在配置一个客户端,需要什么步骤?)下面以jsp-examples为例子,进行下面得阐述:(1)在webappsjsp-examplesWEB-INFweb.xml文件中进行配置: edu.yale.its.tp.cas.client.filter.CASFilter edu.yale.its.tp.cas.client.filter.loginUrl edu.yale.its.tp.cas.client.filter.validateUrl h
11、ttps:8443/cas/proxyValidate edu.yale.its.tp.cas.client.filter.serverName/jsp2/simpletag/*注释掉该行,在其下加入:org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandlerpropertyname=sqlvalue=selectpasswordfromapp_userwhereusername=?dataSourceref=/bean并添加一个bean:bean id= class=org.springframework.jdbc.datas
12、ource.DriverManagerDataSource destroy-method=closeproperty name=driverClassNamevaluecom.mysql.jdbc.Driver/propertyurljdbc:mysql:3306/testusernameroot% String username=(String)session.getAttribute(edu.yale.its.tp.cas.client.filter.userp当前得登陆用户:%=username%/p% username = (String)session.getAttribute( %
13、4 登陆页面的扩展:(1) 现在CAS系统中存在的两套登陆页面project.home/webapp/WEB-INF/view/jsp/default/ui/和project.home/webapp/WEB-INF/view/jsp/simple/ui (2) project.home/webapp/WEB-INF/cas-servlet.xmlbean id=viewResolver class=org.springframework.web.servlet.view.ResourceBundleViewResolverproperty name=basename value=simple_
14、viewsorder0这个bean中basename属性决定由哪个属性文件加载,simple_views. properties还是default_views. Properties而属性文件:project.home/webapp/WEB-INF/classes/default_views.properties project.home/webapp/WEB-INF/classes/simple_views.properties# Login view (/login)casLoginView.(class)=org.springframework.web.servlet.view.JstlViewcasLoginView.url=/WEB-INF/view/jsp/default/ui/casLoginView.jsp