您的位置:首页 > 数据库

配置cas服务认证的验证方式(sql数据库或ldap)

2016-03-14 18:04 387 查看
配置cas服务认证的验证方式(sql数据库或ldap)
一.配置sql认证

关于使用传统的关系型数据库做为验证用户和口令的数据源,在上一篇博文:中有提到过,关于关系型数据库的配置这里也再简单的重复下。具体的可以参考上一篇博文:周记(搭建cas验证服务)

1.导入cas数据库支持jar和数据库驱动jar。复制D:\cas-server-3.5.2.1\modules下面cas-server-support-jdbc-3.5.2.1.jar到D:\apache-tomcat-7.0.52\webapps\cas\WEB-INF\lib下。数据库这里使用的是Mysql,因此把Mysql数据库驱动包(mysql-connector-java-5.1.26-bin.jar)也复制到\cas\WEB-INF\lib文件夹下。

2.配置数据连接信息。打开D:\apache-tomcat-7.0.52\webapps\cas\WEB-INF\deployerConfigContext.xml文件,在<beanid="authenticationManager"节点上面添加数据源信息:

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8</value>
</property>
<property name="username">
<value>root</value>
</property>
<property name="password">
<value>supre2015</value>
</property>
</bean>


3.配置验证规则。还是在上述的cas\WEB-INF\deployerConfigContext.xml文件内,找到<bean class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler"/>,先注释掉该句配置,在该句平行位置下添加如下配置

<bean class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler">
<property name="dataSource" ref="dataSource"></property>
<property name="sql" value="select password from tb_user where  user_name=?"></property>
<!--	密码自定义加密配置
<property name="passwordEncoder" ref="myPasswordEncoder" ></property>				-->
</bean>

说明:a. name="dataSourec" 中的ref为上面我们配置数据库连接信息(<bean id="dataSource")

b.name="sql" 为验证查询语句,后面value中的查询语句,根据具体数据库中的数据表和结构而定

c.name="passwordEncoder"项在后面对密码加密处理中要使用,这里未使用,先注释掉

4.重启Tomcat,访问http://localhost:8080/cas,根据连接数据库中的数据,进行测试。

二.配置ldap认证

ldap百科:LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP。它是基于X.500标准的,但是简单多了并且可以根据需要定制。与X.500不同,LDAP支持TCP/IP,这对访问Internet是必须的。LDAP的核心规范在RFC中都有定义,所有与LDAP相关的RFC都可以在LDAPman RFC网页中找到。

关于ldap大家可以自行去深入了解和学习,这里主要是介绍下cas服务配置ladp来进行验证的步骤。

1.导入cas服务认证的ldap支持jar和spring连接ldapjar(spring-ldap,cas-server-support-ldap

), 复制D:\cas-server-3.5.2.1\modules下面cas-server-support-ldap-3.5.2.1.jar到D:\apache-tomcat-7.0.52\webapps\cas\WEB-INF\lib下。这里使用的spring-ldap是spring-ldap-1.3.1.RELEASE-all.jar版本,该jar可以去spring官网下载,或通过maven添加,把该jar也复制到\cas\WEB-INF\lib文件夹下。如果有需要jar的,可以去下载博文中的demo,demo地址将在后面补上。

2.配置ldap的连接信息。打开D:\apache-tomcat-7.0.52\webapps\cas\WEB-INF\deployerConfigContext.xml文件,在<beanid="authenticationManager"节点上面添加数据源信息:

<bean id="contextSource" class="org.springframework.ldap.core.support.LdapContextSource">
<property name="pooled" value="false"/>
<property name="url" value="ldap://192.168.1.102:389" />
<property name="userDn" value="cn=admin"/>
<property name="password" value="centos"/><!--  自己openldap的密码 -->
<property name="baseEnvironmentProperties">
<map>
<entry key="com.sun.jndi.ldap.connect.timeout" value="3000" />
<entry key="com.sun.jndi.ldap.read.timeout" value="3000" />
<entry key="java.naming.security.authentication" value="simple" />
</map>
</property>
</bean>


说明:url为该ldap服务的地址

userDn为该ldap服务的管理员用户名

password为对应管理员的密码

这三项为主要配置信息,下面map中是对连接参数的一些配置

3.配置验证规则。还是在上述的cas\WEB-INF\deployerConfigContext.xml文件内,找到<bean class="org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler"/>,先注释掉该句配置,在该句平行位置下添加如下配置

<bean class="org.jasig.cas.adaptors.ldap.FastBindLdapAuthenticationHandler">
<property name="filter" value="uid=%u,ou=People,dc=supresoft,dc=com" />
<property name="contextSource" ref="contextSource" />
</bean>


说明:其中contextSource中的ref为上面配置的链接信息bean的id

filter中配置验证的ldap查询语句

4.重启Tomcat,访问http://localhost:8080/cas,根据连接数据库中的数据,进行测试。

demo地址:后期补上或参考同系列博文
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: