《CAS实战2[1].0来自实战的傻瓜式CASSSO学习手册.doc》由会员分享,可在线阅读,更多相关《CAS实战2[1].0来自实战的傻瓜式CASSSO学习手册.doc(10页珍藏版)》请在三一办公上搜索。
1、CAS实战2.0版本2012年3月1号上海释锐教育软件有限公司 内部培训教材CAS Server:192.168.18.77 tomcat7CAS Client:192.168.18.55JBOSS5.1-GA第1步:安装tomcat7 并配置好jdk1.7的环境变量。第2步:创建证书注意事项:1、名字与姓氏 必须填写 验证服务器的域名 2、密钥库口令是 threenet123第3步:导出证书至此导出证书完成,可以分发给应用的JDK使用了,接下来讲解客户端的JVM怎么导入证书第4步:为客户端的JVM导入证书注意事项:1、将threenet_server_key.crt证书文件拷贝到客户端应用程
2、序的机器上 C:threenet_eeoajdk1.7.0bin2、客户端的JRE密钥库默认口令是 changeit 而非threenet123至此证书的创建、导出、导入到客户端JVM都已完成,下面开始使用证书到Web服务器中,本教程使用tomcat第5步:应用证书到CAS Web服务器-Tomcat,就是启用Web服务器(Tomcat)的SSL 好了,到此Tomcat的SSL启用完成,现在你可以启动tomcat试一下了第6步:启动TOMCAT,发现如下错误:java.lang.Exception: Connector attribute SSLCertificateFile must be
3、defined when using SSL with APR解决办法:注释掉一行配置Try this as your server.xml file. I removed some of the comments and commented out the APR listener.!- -至此,测试一下打开 :443/ 提醒:在该步骤,客户端浏览器用户可以按提示一步一步安装证书,安装成功后,下次就不会出现这个提示了。接下来配置CAS服务器。第7步:安装CAS服务器软件7-1)下载完成后将cas-server-3.4.11.zip解压,解压cas-server-3.4.11/modules/
4、cas-server-webapp-3.4.11.war,改名为cas,然后复制cas目录到你的tomcat/webapp目录下。7-2)CAS深入配置,配置CAS服务器怎么读取数据库的信息进行身份验证,修改cas/WEB-INF/deployerConfigContext.xml文件。先复制数据库驱动程序sqljdbc4.jar拷贝到tomcat7/lib下、cas-server-support-jdbc-3.4.11.jar、commons-dbcp.jar、commons-pool-1.3.jar和释锐自定义MD5加密编码包threeoa_utility.jar到cas/WEB-INF/
5、lib/下。注释掉:SimpleTestUsernamePasswordAuthenticationHandler,改用QueryDatabaseAuthenticationHandler。新增如下配置代码:jdbc:sqlserver:/localhost:1433;databaseName=threenet_cascom.microsoft.sqlserver.jdbc.SQLServerDriversathreenet 修改代码:!-至此,CAS服务器安装和配置成功,如下图 注意:此步骤出现CAS Unavaliable错误,后台日志显示ClassNoFindException java
6、x.persistence.spi.PersistenceProvider ,这时在tomcat/lib/下添加 persistence.jar 包文件,重新启动后又出现 java.lang.ClassCastException: org.hibernate.ejb.HibernatePersistence cannot be cast to javax.persistence.spi.PersistenceProvider 错误,原因是各服务器的ClassLoader策略不同一致引起的。TOMCAT环境下的解决办法:上述几个文件是小杨工程师开发的注册管理程序用的,把它们移动到license/
7、WEB-INF/lib/下即可,否则注册程序不能正常工作。另外,还需要在license/WEB-INF/lib下增加slf4j-log4j12-1.6.4.jar和slf4j-api-1.6.4.jar文件。至此,cas和license程序在tomcat7下均正常工作。修改tomcat/conf/server.xml 文件,在中添加 ,重启实现 。新的验证网址为第8步:配置CAS客户端,添加cas-client的jar包8-1)将cas-client-core-3.2.1.jar和threeoa_utility.jar文件拷贝到应用程序WebRootWEB-INFlib下。8-2)编辑web.
8、xml,增加下列内容:org.jasig.cas.client.session.SingleSignOutHttpSessionListenerCAS Single Sign Out Filterorg.jasig.cas.client.session.SingleSignOutFilterCAS Single Sign Out Filter/*CASFilterorg.jasig.cas.client.authentication.AuthenticationFiltercasServerLoginUrlserverNamehttp:/shirui-55CASFilter/*CAS Vali
9、dation Filterorg.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFiltercasServerUrlPrefixserverNamehttp:/shirui-55CAS Validation Filter/*CAS HttpServletRequest Wrapper Filterorg.jasig.cas.client.util.HttpServletRequestWrapperFilterCAS HttpServletRequest Wrapper Filter/*CAS Assertion T
10、hread Local Filterorg.jasig.cas.client.util.AssertionThreadLocalFilterCAS Assertion Thread Local Filter/*!- 自动根据单点登录的结果设置本系统的用户信息 AutoSetUserAdapterFilterAutoSetUserAdapterFiltercn.threenet.eeoa.sso.filter.AutoSetUserAdapterFilterAutoSetUserAdapterFilter/*- OpenSessionInViewFilter org.springframewor
11、k.orm.hibernate3.support.OpenSessionInViewFilter OpenSessionInViewFilter /* 8-3)注销当前登录用户 a href=备注:如果直接访问CAS的logout话,会出现注销成功页面,其实大部分情况下这个页面是没有必要的,更多的需求可能是退出后显示登录页面,并且登录成功后还是会进入到之前的业务系统,那么可以修改cas-servlet.xml文件,在logoutController的bean配置中增加属性“followServiceRedirects”,设置为“true”,然后在业务系统的注销连接中加入service参数,值为
12、业务系统的绝对URL,这样就OK了,如你的业务系统URL为:http:/shirui-55/ssh/,那么注销URL就为: CAS服务端后台会出现下列错误而且logout无效:Socket Timeout Detected while attempting to send message to http:/shirui-55/ssh/.原因是CAS 服务器必须能连接到客户端应用的地址 shirui-55 (一般有公网域名或IP地址,不能是localhost),否则logout会无效。怎么将设置cookie有效设定为无效?默认配置cookie有效期为-1配置文件为:WEB-INF/spring-configuration/ticketGrantingTicketCookieGenerator.xml8-4)客户端程序获取当前登录用户的代码:当前用户是:第9步:美化登录界面复制casWEB-INFviewjspdefaultui的一些JSP文件,每一个文件的用途文件名已经区分了,自己修改了替换一下就可以了。例如:登录界面:casLoginView.jsp登录成功:casGenericSuccess.jsp登出界面:casLogoutView.jsp