CAS 自定义数据源
来源:互联网 发布:怎样写淘宝客招募 编辑:程序博客网 时间:2024/05/16 10:09
# 自定义数据源
在deployConfigContext.xml文件中,找到org.jasig.cas.authentication.AcceptUsersAuthenticationHandler,
首先去掉默认的用户配置<property name="users">,添加上自定义的dataSource,并配置查询密码的sql,及自定义的加密类passwordEncoder,配置完成如下所示:
<bean id="primaryAuthenticationHandler"class="org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler"><property name="dataSource" ref="casDataSource"></property><property name="sql"value="select password from account where username=?"></property><property name="passwordEncoder" ref="MyPasswordEncoder"></property></bean>
我们来看一下QueryDatabaseAuthenticationHandler的源码:
@Override protected final HandlerResult authenticateUsernamePasswordInternal(final UsernamePasswordCredential credential) throws GeneralSecurityException, PreventedException { final String username = credential.getUsername(); // 调用加密算法,可以注入我们自定义的加密类MyPasswordEncoder final String encryptedPassword = this.getPasswordEncoder().encode(credential.getPassword()); try { final String dbPassword = getJdbcTemplate().queryForObject(this.sql, String.class, username); if (!dbPassword.equals(encryptedPassword)) { throw new FailedLoginException("Password does not match value on record."); } } catch (final IncorrectResultSizeDataAccessException e) { if (e.getActualSize() == 0) { throw new AccountNotFoundException(username + " not found with SQL query"); } else { throw new FailedLoginException("Multiple records found for " + username); } } catch (final DataAccessException e) { throw new PreventedException("SQL exception while executing query for " + username, e); } return createHandlerResult(credential, new SimplePrincipal(username), null); }所有的加密类都必须实现PasswordEncoder接口,通过调用encode方法来进行加密,本人的加密算法很简单:
public final class MyPasswordEncoder implements PasswordEncoder {public MyPasswordEncoder() {}public String encode(final String password) {return PasswordUtil.encode(password); // 仅此而已}}
0 0
- CAS 自定义数据源
- CAS自定义
- SSO单点登录系列3:cas-server端配置认证方式实践(数据源+自定义java类认证)
- cas 配置数据源 , 解决CAS 不支持你提供的凭证
- Cas用户密码自定义加密
- cas自定义登录页面
- CAS自定义登录验证
- CAS自定义登录
- 7.CAS自定义错误信息
- CAS自定义登录
- CAS自定义错误信息
- 【CAS】自定义数据库连接配置
- 【CAS】自定义Controller配置
- cas报错 数据源没有找到
- 单点登录cas动态切换数据源
- 创建自定义数据源
- 自定义GridView/ListView数据源
- 润乾 自定义数据源
- ASP.NET中的几种弹出框提示基本实现方法
- Fliter设置字符编码,解决中文问题
- 快速开发一个PHP扩展
- JavaWeb学习笔记之表单数据处理类
- PAT(甲级)1045
- CAS 自定义数据源
- 软件测试中的性能指标
- test
- POJ 1207
- PAT(甲级)1046
- 【小牛分享】jquery mobile网页demo实例代码下载
- 基本算法研究1-冒泡排序算法测试
- HTML属性是什么?
- jQuery全选功能