陈设cas处事器实现定制JDBC验证
当前位置:以往代写 > JAVA 教程 >陈设cas处事器实现定制JDBC验证
2019-06-14

陈设cas处事器实现定制JDBC验证

陈设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>

#p#分页标题#e#

<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

    关键字:

在线提交作业