数据库认证有四种:
1.QueryDatabaseAuthenticationHandler,通过用户名和明文密码进行验证。
首先在cas.properties中配置:
cas.jdbc.authn.query.sql=select password from users where username=?
在deployerConfigContext.xml中配置
<alias name="queryDatabaseAuthenticationHandler" alias="primaryAuthenticationHandler" />
<alias name="dataSource" alias="queryDatabaseDataSource" />
2.SearchModeSearchDatabaseAuthenticationHandler,通过查询用户名和密码来搜索用户记录; 如果至少有一个结果被发现,用户将被认证。
首先在cas.properties中配置
cas.jdbc.authn.search.password=
cas.jdbc.authn.search.user=
cas.jdbc.authn.search.table=
在deployerConfigContext.xml中配置
<alias name="searchModeSearchDatabaseAuthenticationHandler" alias="primaryAuthenticationHandler" />
<alias name="dataSource" alias="searchModeDatabaseDataSource" />
3.BindModeSearchDatabaseAuthenticationHandler,尝试使用用户名和(散列)密码创建数据库连接来对用户进行身份验证。
在deployerConfigContext.xml中配置
<alias name="bindModeSearchDatabaseAuthenticationHandler" alias="primaryAuthenticationHandler" />
<alias name="dataSource" alias="bindSearchDatabaseDataSource" />
4.QueryAndEncodeDatabaseAuthenticationHandler,一个JDBC查询处理程序,它将撤回用户的密码和私有salt值,并使用公共salt值验证编码的密码。 假设一切都在同一个数据库表内。 支持迭代次数和私盐的设置。
首先在cas.properties中配置
cas.jdbc.authn.query.encode.sql=
cas.jdbc.authn.query.encode.alg=
cas.jdbc.authn.query.encode.salt.static=
cas.jdbc.authn.query.encode.password=表字段名
cas.jdbc.authn.query.encode.salt=表字段名
cas.jdbc.authn.query.encode.iterations.field=表字段名
cas.jdbc.authn.query.encode.iterations=
在deployerConfigContext.xml中配置
<alias name="queryAndEncodeDatabaseAuthenticationHandler" alias="primaryAuthenticationHandler" />
<alias name="dataSource" alias="queryEncodeDatabaseDataSource" />
作者:黄埔陈超
链接:https://www.jianshu.com/p/2ba25bd3a5cb
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
网友评论