1)利用jdk 自带的工具生成证书
命令:keytool -genkey -alias wsria -keyalg RSA -keystore d:/keys/wsriakey
严重提醒 :提示输入域名的时候不能 输入IP地址
导出证书 :keytool -export -file d:/keys/wsria.crt -alias wsria -keystore d:/keys/wsriakey
2)将生成的证书导入到jvm
命令:keytool -import -keystore D:\tools\jdk\1.6\jdk1.6.0_20\jre\lib\security\cacerts -file D:/keys/wsria.crt -alias wsria
输入密码 该密码是jvm 证书库的密码 默认为changeit
3)开启tomcat https 服务
<Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
maxThreads="150" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="D:/keys/wsriakey" //证书的位置
keystorePass="wsria.com" //证书的密码
/>
4)服务器配置
1.CAS服务端下载:http://www.jasig.org/cas/download
2.下载完成后将cas-server-3.4.3.1.zip解压,解压cas-server-3.4.3/modules/cas-server-webapp-3.4.3.1.war,改名为cas,然后复制cas目录到你的tomcat/webapp目录下
3.现在可以访问CAS应用了,当然要使用HTTPS加密协议访问,
4.编写自己的认证类 继承AbstractUsernamePasswordAuthenticationHandler
5.修改 WebRoot/WEB-INF/deployerConfigContext.xml 这里需要注意两点
a)把下面 原始的认证方法 注释掉
<!--
<bean
class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler"
/>
-->
b)添加自己的认证类
<bean
class="jasig.cas.authentication.my.Authentication">
<property name="driverClassName">
<value>oracle.jdbc.driver.OracleDriver</value>
</property>
<!--
<property name="url">
<value>jdbc:oracle:thin:@172.16.115.244:1521:ORCL</value>
</property>
-->
<property name="url">
<value>jdbc:oracle:thin:@168.168.1.10:1521:ORCL</value>
</property>
<property name="dname">
<value>xx</value>
</property>
<property name="dpassword">
<value>xx</value>
</property>
<property name="sql">
<value>SELECT * FROM SFM_USERS WHERE ACCOUNT=? AND PASSWORD = ?</value>
</property>
</bean>
</list>
</property>
</bean>
这里利用spring 属性注入值
5)配置自己的登录,退出界面
修改 WebRoot/WEB-INF/cas.properties 的登录页面
cas.securityContext.serviceProperties.service=https://localhost:8443/cas/services/j_acegi_cas_security_check
cas.securityContext.casProcessingFilterEntryPoint.loginUrl=https://localhost:8443/cas/login
cas.securityContext.ticketValidator.casServerUrlPrefix=https://localhost:8443/cas
cas.themeResolver.defaultThemeName=default
#配置认证成功后的页面跟失败后的页面 默认是default_views 位于/WebRoot/WEB-INF/view/jsp 下 其它不需要的情况下不需要修改
cas.viewResolver.basename=newUI_views
#cas.viewResolver.basename=default_views
#认证服务的根名称
host.name=cas
#database.hibernate.dialect=org.hibernate.dialect.OracleDialect
#database.hibernate.dialect=org.hibernate.dialect.MySQLDialect
database.hibernate.dialect=org.hibernate.dialect.HSQLDialect
命名跟default_views 文件夹下的jsp 名称一样 登录界面:casLoginView.jsp
登录成功:casGenericSuccess.jsp
登出界面:casLogoutView.jsp
6)配置客户端
添加cas-client的jar包 ,下载cas-client,地址:http://www.ja-sig.org/downloads/cas-clients/
添加过滤器
<filter>
<filter-name>cas</filter-name>
<filter-class>edu.yale.its.tp.cas.client.filter.CASFilter</filter-class>
<init-param>
<param-name>edu.yale.its.tp.cas.client.filter.loginUrl</param-name>
<param-value>https://localhost:8443/cas/login</param-value>
</init-param>
<init-param>
<param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name>
<param-value>https://localhost:8443/cas/serviceValidate</param-value>
</init-param>
<init-param>
<param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name>
<param-value>localhost:8081</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>cas</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
edu.yale.its.tp.cas.client.filter.loginUrl 指定 CAS 提供登录页面的 URL
edu.yale.its.tp.cas.client.filter.validateUrl 指定 CAS 提供 service ticket 或 proxy ticket 验证服务的 URL
edu.yale.its.tp.cas.client.filter.serverName 指定客户端的域名和端口,是指客户端应用所在机器而不是 CAS Server 所在机器,该参数或 serviceUrl 至少有一个必须指定
edu.yale.its.tp.cas.client.filter.serviceUrl 该参数指定过后将覆盖 serverName 参数,成为登录成功过后重定向的目的地址