CAS认证之数据库认证

原文:https://apereo.github.io/cas/4.2.x/installation/Database-Authentication.html

Database Authentication

当使用Maven WAR overlay部署的时候,数据库认证组件通过增加下面内容启用:

连接池

所有的数据库认证组件要求一个DataSource来连接数据库,强烈建议使用数据库连接池,c3p0库是一个很好的选择。

示例:
一个名为dataSource的bean必需定义

下面的属性可以用来配置数据库连接池

数据库组件

CAS提供了下面的组件来适配不同类型的数据库认证需求。

QueryDatabaseAuthenticationHandler

通过比较哈希过的用户密码来认证一个用户。利用设置好的数据库查询语句。

下面的配置将会被使用:

SearchModeSearchDatabaseAuthenticationHandler
通过用户名密码查询记录,如果能找到一个以上用户就可以认证成功

下面的配置将会被使用:

BindModeSearchDatabaseAuthenticationHandler
通过用户名和哈希过的密码尝试创建一个数据库连接来认证用户。

下面的例子没有执行任何密码加密,因为大多数JDBC驱动原生加密明文密码。注意,用用户名密码建立连接的能力是和认证等价的。这个handler是最简单的了,通常不需要配置。

QueryAndEncodeDatabaseAuthenticationHandler

JDBC查询handler将会把私有salt和密码用来用户验证,用公开的salt加密密码,假设所有的东西都在一个表中。 支持多轮迭代器和私有salt的设置。

密码加密方法,结合私有salt和公开的salt为哈希密码做准备。如果用了多轮迭代,第一轮迭代的字节码在再哈希的时候不会使用salt。最终的结果将会在和数据库比较之前转为16进制。

下面的配置将会被使用:

0 Comments
Leave a Reply