部署cas服务器实现定制JDBC验证

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 server.crt –alias tomcat
这时需要输入上一步设定的密码,结果会在当前目录生成server.crt信任状。

3. 为客户端的JVM导入密钥:

keytool –import –keystore $JAVA_HOME\jre\lib\security\cacerts
–file server.crt –alias tomcat
输入密码时注意密码为“changeit”。
4. 修改服务端Tomcat配置文件,启用SSL。修改$CATALINA_HOME\conf\server.xml,去掉有关SSL的那一段的注释,需要在connector字段中加入keystorePass="password"(password即为1、2步中的密码),keystoreFile= "keystorePath"(可以把第一步生成的.keystore复制到$CATALINA_HOME\conf下,这样keystoreFile= "conf/.keystore")。

5. 重启Tomcat,测试https://server:8443是否可以访问(server应换为机器名或IP地址)。

1.3 CAS Server安装

下载CAS Server 3.0.4,将其中的cas.war复制到$CATALINA_HOME\webapps下,当然现在CAS中的用户密码认证Handler是很简陋的,产品化必须重写这部分代码,生成新的cas.jar。这时可以通过访问https://localhost:8443/cas测试CAS是否成功部署,应看到CAS登陆界面。

1.4 CAS Client 部署

利用Tomcat自带的servlets-examples ($CATALINA_HOME\webapps\servlets-examples)和jsp-examples($CATALINA_HOME\ webapps\jsp-examples)进行试验,下载最新版本的Java CAS Client,将casclient.jar复制到这两个项目的WEB-INF目录的lib下(需要新建此目录)。修改两个项目的WEB-INF\ web.xml,添加如下的过滤器:

<!-- CAS Filters -->
<filter>
<filter-name>CASFilter</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://server:8443/cas/login</param-value>
</init-param><!--这里的server是服务端的IP-->
<init-param>
<param-name>edu.yale.its.tp.cas.client.filter.validateUrl</param-name>
<param-value>https://serName:8443/cas/proxyValidate</param-value>
</init-param><!--这里的serName是服务端的主机名,而且必须是-->
<init-param>
<param-name>edu.yale.its.tp.cas.client.filter.serverName</param-name>
<param-value>client:port</param-value><!--client:port就是需要CAS需要拦截的地址和端口,一般就是这个TOMCAT所启动的IP和port-->
</init-param>
</filter>

<filter-mapping>
<filter-name>CASFilter</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/CAS.php');
// initialize phpCAS
phpCAS::client(CAS_VERSION_2_0,'freeserver.test-toodou.com',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提供的cas-server-jdbc.jar,这里我们修改了cas-server- jdbc的源码满足自己的需要。并把mysql的jdbc驱动和修改后的jar部署到CAS%/WEB_INF/lib/。

修改 %CAS%/WEB_INF/deployerConfigContext..xml,其中关于验证器的一段如下:
………………………………..
<bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
<property name="sql" value="select psw from user where username=?" />
<property name="dataSource" ref="dataSource" />
</bean>
</list>
</property>
</bean>

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" destroy-method="close">
<property name="driverClassName"><value>com.mysql.jdbc.Driver</value></property>
<property name="url"><value>jdbc:mysql://192.168.1.246:3306/toodou</value></property>
<property name="username"><value>username</value></property>
<property name="password"><value>********</value></property>
</bean>

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1503239

时间: 2024-12-22 21:32:52

部署cas服务器实现定制JDBC验证的相关文章

JAVA CAS单点登录之一:搭建CAS服务器

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://dba10g.blog.51cto.com/764602/1753086 前言 这一段时间,心血来潮研究了下CAS这个应用.对它感兴趣,几年前就有过,就是一直没有踏实好好研究,一直是断断续续的纸上谈兵,东看看,西看看.CAS说白了主要涉及权限认证相关,逻辑非常简单.但真正部署起来,也不是一件容易事.我想主要原因如下. 由于知名原因,访问官网非常有难度,系统全面地获取资料非常难,且

JAVA CAS单点登录之四:CAS服务器增加JDBC访问能力

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://dba10g.blog.51cto.com/764602/1753680 经过前面说明,已经完成了CAS服务器的搭建,代理客户端的搭建以及普通客户端,back-end-service客户端的搭建.如果不明白的,参照如下链接. JAVA CAS单点登录之一:搭建CAS服务器  JAVA CAS单点登录之二:CAS普通模式1演练 JAVA CAS单点登录之三:CAS代理模式演练  现

Windows Server 2008中如何部署VPN服务器

部署PPTP VPN服务器建议遵循以下流程: 域控制器中部署Active Directory Domain Services服务.WINS服务以及DHCP服务. 域控制器中创建域用户,并赋予"允许远程访问"的权限. PPTP VPN服务器加入域. PPTP VPN服务器中部署"网络策略和访问服务",配置"路由和远程访问". 客户端计算机创建VPN连接. 部署SSL VPN服务器建议遵循以下流程: 域控制器中部署Active Directory D

Exchange Server 2010学习(十一)部署CAS+HT角色高可用性

Exchange Server 2010使用基于角色的管理模型.多角色服务器的安装及配置,我们在前面的文章中已经做过介绍.本案例中根据高可用性要求,我们需要把服务器角色部署在分开的服务器上面,并且实现CAS.HT.MBX角色的高可用.在此,我的计划是首先部署两台CAS/HUB服务器,再把这两台CAS/HUB服务器组成一个CAS Array,用于提供客户端访问服务和集线器传输服务.有了CAS阵列后,可以通过配置让CAS阵列成为企业邮件系统的核心服务器,所有进出邮局的邮件必须先经过CAS阵列.然后再

app-项目部署到服务器上,手机访问一段时候就访问不了

问题描述 项目部署到服务器上,手机访问一段时候就访问不了 SSH项目部署到服务器上(win08)上,手机访问一段时间后,就不能访问,就需要重启服务器后才能访问,这是什么原因恩 解决方案 清空日志再查看日志,看看是不是已经报错 解决方案二: 是不是hibernate配置文件设置了权限? 解决方案三: 可能的原因很多吧?有可能是缓存没有自动清理,也可能数据库连接没有关闭当然也有可能是访问量太大或者网速不行 解决方案四: 清空日志文件,手机访问一下,别急着重启,查看日志文件,看看是否已经报错 解决方案

CentOS6系统Rsyslog+LogAnalyzer+MySQL部署日志服务器

一.环境配置介绍 1.实验环境介绍 Rsyslog Server OS:CentOS release 6.5 (Final) X86_64 Rsyslog Seravr IP:211.149.204.229 Rsyslog Client OS:CentOS release 6.5 (Final) X86_64 Rsyslog Client IP:63.223.64.110 Rsyslog Version:rsyslog-5.8.10-8.el6.x86_64 LNMP Version:nginx

oa部署上服务器报错-OA部署上服务器报错,求大神指点!

问题描述 OA部署上服务器报错,求大神指点! 日志名称: Application来源: Application Error日期: 2015/10/23 8:11:36事件 ID: 1000任务类别: (100)级别: 错误关键字: 经典用户: 暂缺计算机: OAWEB描述:错误应用程序名称: apache.exe,版本: 2.2.22.0,时间戳: 0x4f242d7a错误模块名称: ntdll.dll,版本: 6.1.7601.17514,时间戳: 0x4ce7ba58异常代码: 0xc000

新手部署DNS服务器须知

在任何现在的TCP/IP网络中,最重要的构成之一就是DNS服务器.DNS服务器可以完成的事情很多,例如把一个互联网URL解析成IP地址:解析本地网络中的主机名称:提供Windows活动目录所依赖的基础架构.因此,部署一个DNS服务器并不是一件非常简单的事情. 为了帮助一些新手朋友更好的了解DNS服务器,本文和大家讨论一些部署DNS服务器的经验和常识,介绍DNS服务器可以胜任的角色,以及DNS服务器在网络中应该部署的位置,还有,对于你的网络来说,应该部署多少DNS服务器才是最佳选择. 你需要多少D

Centos 6.0之rsyslog部署日志服务器

本文Centos6.0 日志服务器,可以方便统一查看服务器上的日志,并且写入数据库,进行web显示,方便查看:也起到了一定的安全的作用,当黑客离开clear history的时候,我们这边也是可以看到的:废话少说了,直接正题 Client1: 192.168.244.154 Client2: 略:一样的配置 logserver:192.168.244.132 LogAnalyzer是一个syslog和其他网络事件数据的Web前端工具,提供简单易用的日志浏览.搜索和基本分析以及图表显示.采用php