cas关键配置说明-4.2.7版本(实现了基于db的验证)

1、参考文档
cas官网:
 
cas好文:
 
2、版本
jdk:1.8
tomcat 8.5.8
服务端:cas-server 4.2.7
客户端:cas-client 3.4.1
 
3、配置要点
3.1 创建证书
1)  服务端生成数字证书的命令
keytool -genkey -keystore "F:\cas\keystore\cas.keystore" -alias "mykey" -keyalg "RSA" -keypass   "changeit" -storepass "changeit"
my name:     sso.itown.cn
my organize:itown.cn
 
2) 服务端导出cer证书文件的命令
keytool -export -file ./mykey.crt -alias mykey -keystore ./cas.keystore
 
3) 客户端JRE中导入服务端cer证书的命令
keytool -import -keystore E:\jdk1.8.0_25\jre\lib\security\cacerts -file ./mykey.crt -alias mykey
 
4) 同时修改hosts,增加如下内容:
127.0.0.1 sso.itown.cn
 
3.2 服务端tomcat支持SSL访问
tomcat 8.5 单项认证生效配置如下:
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="F:/cas/keystore/cas.keystore"
certificateKeyAlias="mykey"
certificateKeystorePassword="changeit"
type="RSA" />
</SSLHostConfig>
</Connector>
 
部署cas-server,测试账号casuser,密码Mellon
 
3.3 服务端采用db认证方式
检查deployerConfigContext.xml
注释如下内容:
<alias name="acceptUsersAuthenticationHandler" alias="primaryAuthenticationHandler" />
添加如下内容:
<bean id="queryDatabaseAuthenticationHandler" class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
<property name="passwordEncoder" ref="MD5PasswordEncoder"/>
</bean>
<bean id="MD5PasswordEncoder" class="org.jasig.cas.authentication.handler.DefaultPasswordEncoder" autowire="byName">
<constructor-arg value="MD5"/>
</bean>
<bean id="dataSource"
class="com.mchange.v2.c3p0.ComboPooledDataSource"
p:driverClass=" oracle.jdbc.driver.OracleDriver"
p:jdbcUrl=" jdbc:oracle:thin:@192.168.21.226:1521:test"
p:user=" pgtools"
p:password=" pgtools"
p:initialPoolSize="6"
p:minPoolSize="6"
p:maxPoolSize="18"
p:maxIdleTimeExcessConnections="120"
p:checkoutTimeout="10000"
p:acquireIncrement="6"
p:acquireRetryAttempts="5"
p:acquireRetryDelay="2000"
p:idleConnectionTestPeriod="30"
p:preferredTestQuery=" select 1 from dual" />
 
<alias name="queryDatabaseAuthenticationHandler" alias="primaryAuthenticationHandler" />
<alias name="dataSource" alias="queryDatabaseDataSource" />
 
同时修改cas.properties,配置如下内容:
cas.jdbc.authn.query.sql= select password from app_user where username=?
 
此项设置采用的c3p0连接池,需检查相关jar包,示例中采用oracle db,需引入oracle的连接jar包
由于密码采用MD5加密,app_user表中password字段需MD5加密
 
3.4 客户端安装
下载地址:
打包生成war包,修改web.xml配置
 
3.5 服务端重要参数修改
针对4.2以上的版本,
WEB-INF/classes/services 中的  HTTPSandIMAPS-10000001.json
需要修改成 "serviceId" : "^(https|imaps|http)://.*"   或者把https修改成http
否则会报Application Not Authorized to Use CAS
 
 
 
 
 
 
 
 

猜你喜欢

转载自jackiee-cn.iteye.com/blog/2384022