扩展 CAS Server 界面
CAS 提供了 2 套默认的页面,分别为“ default ”和“ simple ”,分别在目录“ cas/WEB-INF/view/jsp/default ”和“ cas/WEB-INF/view/jsp/simple ”下。其中 default 是一个稍微复杂一些的页面,使用 CSS,而 simple 则是能让 CAS 正常工作的最简化的页面。
在部署 CAS 之前,我们可能需要定制一套新的 CAS Server 页面,添加一些个性化的内容。最简单的方法就是拷贝一份 default 或 simple 文件到“ cas/WEB-INF/view/jsp ”目录下,比如命名为 newUI,接下来是实现和修改必要的页面,有 4 个页面是必须的:
- casConfirmView.jsp: 当用户选择了“ warn ”时会看到的确认界面
- casGenericSuccess.jsp: 在用户成功通过认证而没有目的Service时会看到的界面
- casLoginView.jsp: 当需要用户提供认证信息时会出现的界面
- casLogoutView.jsp: 当用户结束 CAS 单点登录系统会话时出现的界面
CAS 的页面采用 Spring 框架编写,对于不熟悉 Spring 的使用者,在修改之前需要熟悉该框架。
页面定制完过后,还需要做一些配置从而让 CAS 找到新的页面,拷贝“ cas/WEB-INF/classes/default_views.properties ”,重命名为“ cas/WEB-INF/classes/ newUI_views.properties ”,并修改其中所有的值到相应新页面。最后是更新“ cas/WEB-INF/cas-servlet.xml ”文件中的 viewResolver,将其修改为如清单 9 中的内容。
指定 CAS 页面
<bean id="viewResolver" class="org.springframework.web.servlet.view.ResourceBundleViewResolver" p:order="0"> <property name="basenames"> <list> <value>${cas.viewResolver.basename}</value> <value> newUI_views</value> </list> </property> </bean> |
Tomcat SSL安全验证
如果要实现CAS的单点登入,这是必须的
1. 生产密钥
2. 点击’开始’à’运行’,输入cmd
CD X:\jdk根目录\Java\jdk1.6.0_14\bin
CD X:
打开系统的hosts文件,我们定义2个解析
127.0.0.1 casserver
127.0.0.1 server1
下文中导入过程密码统一使用password
keytool -genkey -alias cas-server -keyalg RSA -keypass password -storepass password -keystore casserver.keystore
输入密码后,在第一个提示输入姓名(CN)的时候,输入你的CAS服务端域名或者hosts文件里定义的映射,如casserver
国家(C)输入CN
keytool -export -alias cas-server –storepass password -file casserver.cer -keystore casserver.keystore
keytool -import -trustcacerts -alias server -file casserver.cer –keystore “jre根目录/lib/security/cacerts “ -storepass changeit
注意,这个 changeit 是cacerts 文件(密钥库)的密码,不是刚才设置的密钥密码, changeit 为密钥库的默认密码
如果操作成功,会在jdk bin目录下看到casserver.cer casserver.keystore 这两个文件
打开tomcat目录下conf/ server.xml 文件,找到
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxThreads="150" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" />
|
将注释去掉,修改为
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" disableUploadTimeout="true" acceptCount="100" scheme="https" secure="false" clientAuth="false" sslProtocol="TLS" keystoreFile=" casserver.keystore所在的目录\casserver.keystore" keystorePass="password" truststoreFile="jre目录/lib/security/cacerts" truststorePass="changeit" />
|
默认的密钥有效期是3个月,可以根据自己需求修改
访问https://casserver:8443/cas/login 测试是否部署成功