部署服务器实现定制验证覆盖
1 安装
1.1系统配置
以下的软件环境是必需的:
1. JDK 1.4.2 or higher
2. Tomcat 5.X
1.2 Tomcat 配置,启用SSL
1. 在要安装CAS的机器上为Tomcat生成用于SSL通讯的密钥:
keytool –genkey –alias tomcat –keyalg RSA
这时需要输入密钥密码和其他参数(第一个参数CN必须设置为CAS机器名,本机使用localhost测试),会在用户目录中生成.keystore密钥文件。
2. 导出密钥文件:
keytool –export –file t –alias tomcat
这时需要输入上一步设定的密码,结果会在当前目录生成t信任状。
3. 为客户端的JVM导入密钥:
keytool –import –keystore $JAVA_HOME\\jre\\lib\\security\\cacerts
–file t –alias tomcat
输入密码时注意密码为“changeit”。
4. 修改服务端Tomcat配置文件,启用SSL。修改$CATALINA_HOME\\conf\\l,去掉有关SSL的那一段的注释,需要在connector字段中加入keystorePass=\"password\"(password即为1、2步中的密码),keystoreFile= \"keystorePath\"(可以把第一步生成的.keystore复制到$CATALINA_HOME\\conf下,这样keystoreFile= \"conf/.keystore\")。
5. 重启Tomcat,测试
1.3 CAS Server安装
下载CAS Server 3.0.4,将其中的r复制到$CATALINA_HOME\\webapps下,当然现在CAS中的用户密码认证Handler是很简陋的,产品化必须重写这部分代码,生成新的r。这时可以通过访问
1.4 CAS Client 部署
利用Tomcat自带的servlets-examples ($CATALINA_HOME\\webapps\\servlets-examples)和jsp-examples($CATALINA_HOME\\ webapps\\jsp-examples)进行试验,下载最新版本的Java CAS Client,将r复制到这两个项目的WEB-INF目录的lib下(需要新建此目录)。修改两个项目的WEB-INF\\ l,添加如下的过滤器:
!-- CAS Filters --
filter
filter-nameCASFilter/filter-name
SFilter/filter-class
init-param
ginUrl/param-name
param-
/init-param!--这里的server是服务端的IP--
init-param
lidateUrl/param-name
param-
/init-param!--这里的serName是服务端的主机名,而且必须是--
init-param
rverName/param-name
param-valueclient:port/param-value!--client:port就是需要CAS需要拦截的地址和端口,一般就是这个TOMCAT所启动的IP和port--
/init-param
/filter
filter-mapping
filter-nameCASFilter/filter-name
url-pattern/servlet/*/url-pattern!--这里的设置是针对servlets-examples的,针对jsp-examples设置为/*--
/filter-mapping
2 测试
重启Tomcat,定位到servlets-examples,执行任何一个例子都会被重定向到CAS登陆页;再定位到jsp-examples,也会被重定向到CAS登陆页;此时登陆(默认的认证Handler只要求username=password,可任意选择用户名);登录后就会进入jsp- examples;继续定位到servlets-examples,执行任何一个例子也不用再输入密码。
补充:
在多台机器上部署CAS:这些机器必需在同一个域中;服务器端生成证书,客户端导入证书(操作见上)。
PHP客户端:使用esup-phpcas客户端,验证部分php代码如下:
// import phpCAS lib
include_once(\'CAS/p\');
// initialize phpCAS
phpCAS::client(CAS_VERSION_2_0,\'\',8443,\'/cas\');
// force CAS authentication
phpCAS::forceAuthentication();
// at this step, the user has been authenticated by the CAS server
// and the user\'s login name can be read with phpCAS::getUser().
// logout if desired
if (isset($_REQUEST[\'logout\'])) {
phpCAS::logout();
}
登录结束后,CAS服务器会自动重定向回本页面。
CAS服务器与数据库连接:实际环境中我们需要到数据库验证用户有效性,在CAS中配置JDBC连接。
首先,我们需要创建自己的数据库验证器,当然也可以使用Jasig提供的r,这里我们修改了cas-server- jdbc的源码满足自己的需要。并把mysql的jdbc驱动和修改后的jar部署到CAS%/WEB_INF/lib/。
修改 %CAS%/WEB_INF/deployerConfigContext..xml,其中关于验证器的一段如下:
………………………………..
bean class=\"eryDatabaseAuthenticationHandler\"
property name=\"sql\" value=\"select psw from user where username=?\" /
property name=\"dataSource\" ref=\"dataSource\" /
/bean
/list
/property
/bean
bean id=\"dataSource\" class=\"iverManagerDataSource\" destroy-method=\"close\"
property name=\"driverClassName\"iver/value/property
怀孕母猪、经产母猪存养量较大 property name=\"url\"valuejdbc:
property name=\"username\"valueusername/value/property
property name=\"password\"value********/value/property
/bean
Trackback:
查看本文来源
西宁妇科习惯性流产治疗多少钱西安男科医院哪家好
小孩腹胀不消化怎么办
-
川博携手济源研究院举办“张大千临摹济源壁画研究”学术交流会
川博携手玄奘研究学术研究院举办“名家真迹玄奘画先为研究学术研究”学术...
2024-03-27
-
️来自霍格沃茨的趣味魔法编程让应用程序耕于心田,令魔法绽于指尖。影子老师全新力作,众人翘首以待,下周
...
2024-01-08
-
美元霸权陨落?俄气27个买家开设卢布帐户,美元对卢布跌破59大关
这些年,American几日挥舞着“美元大棒”,不是威胁这个第三世界,就是击打...
2023-12-09
-
关乎大资金动向!科创板“芯片”指数来了,42只样本股名单公布;上交所几大指数也调整,腾讯、美团等权重
A股、公司股票多个极其重要指标公布或修正,这意味着之外的大资金样式也...
2023-11-27
-
"零售之王"换帅出炉!27年"老招行"王良接棒,保持战略执行不偏移、不动摇
“批发人就时会”换帅出炉! 采访授予悉,5翌年19日下午,招商银行业召开...
2023-11-19
-
世界顶尖风景大片,愤慨心灵的万年奇观!
有着大树平滑的一块,好不可思议纵使后新生命以痛吻我,我仍报之以歌万丈...
2023-11-18