1、在eclipse中导入【cas-server-webapp-3.3.2.war(在cas-server/modules下面)】war项目,
2、添加 jar 引用文件:
cas-server-support-jdbc-3.3.2.jar和
mysql-connector-java-3.1.13-bin.jar
3、新建自定义类
CustomQueryDBHandler继承
AbstractJdbcUsernamePasswordAuthenticationHandler
public final class CustomQueryDBHandler extends
AbstractJdbcUsernamePasswordAuthenticationHandler {
@NotNull
private String sql;
@Override
protected final boolean authenticateUsernamePasswordInternal(
final UsernamePasswordCredentials credentials)
throws AuthenticationException {
final String username = credentials.getUsername();
final String password = credentials.getPassword();
final String encryptedPassword = this.getPasswordEncoder().encode(
password);
try {
final String dbPassword = getJdbcTemplate().queryForObject(
this.sql, String.class, username);
if
(password==
null
){
//在中messages_zh_CN.properties文件中添加以下信息(密码错误)
//error.authentication.credentials.bad.usernameorpassword.password=\u5bc6\u7801\u9519\u8bef
throw new BadPasswordAuthenticationException();
}
return dbPassword.equals(encryptedPassword);
} catch (final IncorrectResultSizeDataAccessException e) {
// this means the username was not found.
return false;
}
}
/**
* @param sql The sql to set.
*/
public void setSql(final String sql) {
this.sql = sql;
}
}
4、更改验证方式
<bean class="com.tgb.handler.
CustomQueryDBHandler
">
<property name="dataSource" ref="dataSource"></property>
<property name="sql" value="select PASSWORD from sso_t_user where LOGIN_NAME=?"></property>
</bean>