jdbc认证处理器
需要增加cas-server-support-jdbc-3.5.2.jar
对于jdbc认证处理器,包含三个
根据提供的用户名及密码,认证是否能够连上相应的数据库,如何可以则认证成功,反之则认证失败,它需要一个参数datasource 数据源
根据提供的用户名及密码,认证该用户与数据库表的存储的用户信息相匹配,如果匹配则认证成功,反之则认证失败。它所需要至少两个参数
a.datasource 数据源;
b.sql,sql具体内容与如下类似select user_password from user_table where user_name =? 根据用户名去获取用户的密码;
c.passwordEncoder 密码的加密方式,这个是可选的;
所以QueryDatabaseAuthenticationHandler的认证过程就很简单明了,即根据sql语句到datasource中查询password,然后根据passwordEncoder将用户提供
的明码进行加密与password进行比对,如果相等就成功,否则认证失败。cas同时提供MD5密码加密方式,配置如下方式
<bean class="org.jasig.cas.authentication.handler.DefaultPasswordEncoder" p:encodingAlgorithm="MD5" p:characterEncoding="UTF-8"/>
这个认证处理器与QueryDatabaseAuthenticationHandler类似,只是不需要提供sql,换之提供相应的用户表名tableUsers,用户名字段fieldUser,
用户密码字段fieldPassword,及数据源dataSource,它会自动生成如下sql语句:
select count('x') from tableUsers where fieldUser=? And fieldPassword=?
这里passwordEncoder 密码的加密方式属性也是可选的.
通过这样一句sql语句查询用户数,当至少有一个用户存在则认证成功,否则失败。这个认证处理器与QueryDatabaseAuthenticationHandler不同是,这里并不需要用户名的唯一性,这是这两个认证处理器的最大不同。对于不同的用户信息采用不同的处理方式,但是可以达到同样的效果即对用户进行认证。
发表评论(对文章涉及的知识点还有疑问,可以在这里留言,老高看到后会及时回复的。)