准备工作
1、认证中心机器。地址192.168.0.177 域名 aa.cn
2、需要做认证的服务器 地址 192.168.0.105 域名 bb.cn
1、认证中心机器。地址192.168.0.177 域名 aa.cn
2、需要做认证的服务器 地址 192.168.0.105 域名 bb.cn
修改 177 和105 机器的hosts (system32 搜索一下)
177机器
修改:hosts
177机器
修改:hosts
192.168.0.177 aa.cn
192.168.0.105 bb.cn
192.168.0.105 bb.cn
105机器
修改:hosts
修改:hosts
192.168.0.177 aa.cn
192.168.0.105 bb.cn
下载 cas
192.168.0.105 bb.cn
下载 cas
本例使用的是
cas-server-3.0.5.zip
cas-client-java-2.1.1.zip
ssl 认证服务器 tocat5.5
客户端resin-2.0.3
认证中心修改与配置
机器177
1、生成keystore 文件
命令行模式下:
keytool -genkey -alias tomcat -validity 365 -keyalg RSA -keystore D:\tomcat.keystore
问姓名时输入:
aa.cn
密码infosea
1、生成keystore 文件
命令行模式下:
keytool -genkey -alias tomcat -validity 365 -keyalg RSA -keystore D:\tomcat.keystore
问姓名时输入:
aa.cn
密码infosea
2、配置tomcat5 的ssl 端口:
conf\server.conf
<connector port="8443" maxhttpheadersize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" keystoreFile="d:/tomcat.keystore" keystorePass="infosea" />
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" disableUploadTimeout="true"
acceptCount="100" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS" keystoreFile="d:/tomcat.keystore" keystorePass="infosea" />
访问 localhost:8443 可以访问,说明tomcat5 ssl 配置成功。
3、cas 配置
将cas.war 包拷到tomcat 的webapps 下,访问 https://192.168.0.177:8443/cas/login 能正常访问,说明cas 可以正常运行。
将cas.war 包拷到tomcat 的webapps 下,访问 https://192.168.0.177:8443/cas/login 能正常访问,说明cas 可以正常运行。
配置 jdbc sql 语句认证方式。
cas/web-inf/deployerConfigContext.xml
注意
bean
casDataSource
myjdbcauth
authenticationHandlers 的list 参数。
如果认证需要指定加密类的话,参考其它资料。本例只让cas 简单的运行起来。
注意
bean
casDataSource
myjdbcauth
authenticationHandlers 的list 参数。
如果认证需要指定加密类的话,参考其它资料。本例只让cas 简单的运行起来。
<bean id="authenticationManager"
class="org.jasig.cas.authentication.AuthenticationManagerImpl">
<bean
class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler" />
class="org.jasig.cas.authentication.AuthenticationManagerImpl">
<bean
class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler" />
<bean
class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler" />
oracle.jdbc.OracleDriver
jdbc:oracle:thin:@192.168.0.56:1521:glis
usrglis
usrglis
<property name="sql"
value="select mm as password from dzxxb where upper(dztm) = upper(?)" />
cas 可以根据 cas/WEB-INF/cas-servlet.xml 里的viewResolver 配置装载不同的ui配置文件.
将 cas\WEB-INF\view\jsp 里的sample 拷贝并改名为 newUI
修改里面的文件(文件名的意思很明显)
修改里面的文件(文件名的意思很明显)
修改cas-servlet.xml
<bean
id="viewResolver"
class="org.springframework.web.servlet.view.ResourceBundleViewResolver">
<property
name="basename"
value="newUI_views" />
<property
name="order"
value="0" />
新建
id="viewResolver"
class="org.springframework.web.servlet.view.ResourceBundleViewResolver">
<property
name="basename"
value="newUI_views" />
<property
name="order"
value="0" />
新建
newUI_views.properties
### Login view (/login)
casLoginView.(class)=org.springframework.web.servlet.view.JstlView
casLoginView.url=/WEB-INF/view/jsp/newUI/ui/casLoginView.jsp
casLoginView.(class)=org.springframework.web.servlet.view.JstlView
casLoginView.url=/WEB-INF/view/jsp/newUI/ui/casLoginView.jsp
### Login confirmation view (logged in, warn=true)
casLoginConfirmView.(class)=org.springframework.web.servlet.view.JstlView
casLoginConfirmView.url=/WEB-INF/view/jsp/newUI/ui/casConfirmView.jsp
casLoginConfirmView.(class)=org.springframework.web.servlet.view.JstlView
casLoginConfirmView.url=/WEB-INF/view/jsp/newUI/ui/casConfirmView.jsp
### Logged-in view (logged in, no service provided)
casLoginGenericSuccessView.(class)=org.springframework.web.servlet.view.JstlView
casLoginGenericSuccessView.url=/WEB-INF/view/jsp/newUI/ui/casGenericSuccess.jsp
casLoginGenericSuccessView.(class)=org.springframework.web.servlet.view.JstlView
casLoginGenericSuccessView.url=/WEB-INF/view/jsp/newUI/ui/casGenericSuccess.jsp
### Logout view (/logout)
casLogoutView.(class)=org.springframework.web.servlet.view.JstlView
casLogoutView.url=/WEB-INF/view/jsp/newUI/ui/casLogoutView.jsp
casLogoutView.(class)=org.springframework.web.servlet.view.JstlView
casLogoutView.url=/WEB-INF/view/jsp/newUI/ui/casLogoutView.jsp
### 1.0 validation responses (/validate)
cas1ServiceFailureView.(class)=org.jasig.cas.web.view.Cas10ResponseView
cas1ServiceFailureView.successResponse=false
cas1ServiceFailureView.(class)=org.jasig.cas.web.view.Cas10ResponseView
cas1ServiceFailureView.successResponse=false
cas1ServiceSuccessView.(class)=org.jasig.cas.web.view.Cas10ResponseView
cas1ServiceSuccessView.successResponse=true
cas1ServiceSuccessView.successResponse=true
casServiceSuccessView.(class)=org.springframework.web.servlet.view.JstlView
casServiceSuccessView.url=/WEB-INF/view/jsp/default/protocol/2.0/casServiceValidationSuccess.jsp
casServiceSuccessView.url=/WEB-INF/view/jsp/default/protocol/2.0/casServiceValidationSuccess.jsp
casServiceFailureView.(class)=org.springframework.web.servlet.view.JstlView
casServiceFailureView.url=/WEB-INF/view/jsp/default/protocol/2.0/casServiceValidationFailure.jsp
casServiceFailureView.url=/WEB-INF/view/jsp/default/protocol/2.0/casServiceValidationFailure.jsp
casProxyFailureView.(class)=org.springframework.web.servlet.view.JstlView
casProxyFailureView.url=/WEB-INF/view/jsp/default/protocol/2.0/casProxyFailureView.jsp
casProxyFailureView.url=/WEB-INF/view/jsp/default/protocol/2.0/casProxyFailureView.jsp
casProxySuccessView.(class)=org.springframework.web.servlet.view.JstlView
casProxySuccessView.url=/WEB-INF/view/jsp/default/protocol/2.0/casProxySuccessView.jsp
casProxySuccessView.url=/WEB-INF/view/jsp/default/protocol/2.0/casProxySuccessView.jsp
### CAS error view
serviceErrorView.(class)=org.springframework.web.servlet.view.JstlView
serviceErrorView.url=/WEB-INF/view/jsp/newUI/ui/serviceErrorView.jsp
serviceErrorView.(class)=org.springframework.web.servlet.view.JstlView
serviceErrorView.url=/WEB-INF/view/jsp/newUI/ui/serviceErrorView.jsp
重启动tomcat ,应该可以看到新的登录页面了。
客户端配置
1、导出证书
keytool -export -file myserver.cert -alias tomcat -keystore d:\tomcat.keystore
2、客启端导入证书
keytool -import -alias tomcat -file myserver.cert -keystore "C:\Program File
s\Java\jdk1.5.0_09\jre\lib\security\cacerts"
keytool -import -alias tomcat -file myserver.cert -keystore "C:\Program File
s\Java\jdk1.5.0_09\jre\lib\security\cacerts"
将casclient.jar拷贝到应用的WEB-INF\lib 下
修改你的应用的web.xml添加filter
casfilter
edu.yale.its.tp.cas.client.filter.CASFilter
edu.yale.its.tp.cas.client.filter.loginUrl
https://aa.cn:8443/cas/login
edu.yale.its.tp.cas.client.filter.validateUrl
https://aa.cn:8443/cas/serviceValidate
edu.yale.its.tp.cas.client.filter.serverName
bb.cn:8089
casfilter
/*
casfilter
edu.yale.its.tp.cas.client.filter.CASFilter
edu.yale.its.tp.cas.client.filter.loginUrl
https://aa.cn:8443/cas/login
edu.yale.its.tp.cas.client.filter.validateUrl
https://aa.cn:8443/cas/serviceValidate
edu.yale.its.tp.cas.client.filter.serverName
bb.cn:8089
casfilter
/*
访问网站时就会弹出提示登陆窗了.
登陆后的用户可以从 session 中的到登陆用户的登陆代码
session.getAttribute("edu.yale.its.tp.cas.client.filter.user")
当然还有很多方式验证方式. 可以参考cas 说明.