CAS 5.3.1系列之支持JDBC认证登录(二)
2020-06-24 04:13
253 查看
CAS 5.3.1系列之支持JDBC认证登录(二)
在项目中,我们肯定是不能用默认的静态账号密码,所以我们需要实现对jdbc或者其它认证方式的支持,将cas-overlay-template-5.2\pom.xml复制到项目里,将application.properties复制到resources文件夹
<!--新增支持jdbc验证--> <dependency> <groupId>org.apereo.cas</groupId> <artifactId>cas-server-support-jdbc</artifactId> <version>${cas.version}</version> </dependency> <!--自适配数据库驱动,其中包括HSQLDB、Oracle、MYSQL、PostgreSQL、MariaDB、Microsoft SQL Server--> <dependency> <groupId>org.apereo.cas</groupId> <artifactId>cas-server-support-jdbc-drivers</artifactId> <version>${cas.version}</version> </dependency>
注意5.3.1版本的cas-server-support-jdbc-drivers数据库驱动是mysql8左右的,所以如果是mysql5版本的,就不使用自适配驱动,自己加上:
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.27</version> </dependency>
ok,然后需要在application.properties加上:
## # JDBC Authentication # # 查询账号密码SQL,必须包含密码字段 cas.authn.jdbc.query[0].sql=select * from sys_user where username=? # 指定上面的SQL查询字段名(必须) cas.authn.jdbc.query[0].fieldPassword=password # 指定过期字段,1为过期,若过期不可用 cas.authn.jdbc.query[0].fieldExpired=expired # 为不可用字段段,1为不可用,需要修改密码 cas.authn.jdbc.query[0].fieldDisabled=disabled # 数据库连接 cas.authn.jdbc.query[0].url=jdbc:mysql://192.168.0.159:3306/jeeplatform?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8 # 数据库dialect配置 cas.authn.jdbc.query[0].dialect=org.hibernate.dialect.MySQLDialect # 数据库用户名 cas.authn.jdbc.query[0].user=root # 数据库用户密码 cas.authn.jdbc.query[0].password=root # 数据库事务自动提交 cas.authn.jdbc.query[0].autocommit=false # 数据库驱动 cas.authn.jdbc.query[0].driverClass=com.mysql.jdbc.Driver # 超时配置 cas.authn.jdbc.query[0].idleTimeout=50000 # 默认加密策略,通过encodingAlgorithm来指定算法,默认NONE不加密 # NONE|DEFAULT|STANDARD|BCRYPT|SCRYPT|PBKDF2 cas.authn.jdbc.query[0].passwordEncoder.type=NONE #cas.authn.jdbc.query[0].passwordEncoder.type=org.muses.jeeplatform.cas.authentication.encode.MD5PasswordEncoder# 字符类型 cas.authn.jdbc.query[0].passwordEncoder.characterEncoding=UTF-8 # 加密算法 #cas.authn.jdbc.query[0].passwordEncoder.encodingAlgorithm=MD5 # 加密盐 #cas.authn.jdbc.query[0].passwordEncoder.secret= # 加密字符长度 #cas.authn.jdbc.query[0].passwordEncoder.strength=16
然后启动项目,访问,暂时不用密码加密方式,如果要MD5密码可以如下设置
# NONE|DEFAULT|STANDARD|BCRYPT|SCRYPT|PBKDF2 cas.authn.jdbc.query[0].passwordEncoder.type=DEFAULT cas.authn.jdbc.query[0].passwordEncoder.encodingAlgorithm=MD5
也可以自定义加密方式:
import org.springframework.security.crypto.password.PasswordEncoder; /** * <pre> * 自定义PasswordEncoder * </pre> * * <pre> * @author mazq * 修改记录 * 修改后版本: 修改人: 修改日期: 2020/04/24 17:02 修改内容: * </pre> */ public class MD5PasswordEncoder implements PasswordEncoder { @Override public String encode(CharSequence charSequence) { return charSequence.toString(); } @Override public boolean matches(CharSequence charSequence, String s) { String encodeStr = charSequence.toString() + "aa"; if (encodeStr.equals(s)) { return true; } return false; } }
然后修改配置:
cas.authn.jdbc.query[0].passwordEncoder.type=org.muses.jeeplatform.cas.authentication.encode.MD5PasswordEncoder
代码例子参考:github下载链接
详情可以参考官方文档:https://apereo.github.io/cas/5.3.x/installation/Configuration-Properties.html
优质参考博客:
https://www.cnblogs.com/jpeanut/tag/CAS/
https://blog.csdn.net/anumbrella/category_7765386.html
相关文章推荐
- CAS单点登录之支持数据库认证
- CAS 5.3.1系列之自定义JDBC认证策略(三)
- 单点登录CAS系列8-客户端配置单点登出
- CAS-单点登录环境安装+JDBC支持配置
- 基于CAS的单点登录SSO[3]: 改造cas-overlays-template支持Redis存储Ticket
- CAS 4.2.1单点登录(二) 修改支持http协议
- cas sso单点登录系列4_cas-server登录页面自定义修改过程(jsp页面修改)
- cas sso单点登录系列8_抛弃Https让Cas以Http协议提供单点登录服务
- SSO单点登录系列4:cas-server登录页面自定义修改过程
- CAS-单点登录环境安装+JDBC支持配置
- 单点登录cas常见问题系列汇总 - 持续更新
- SSO单点登录系列4:cas-server登录页面自定义修改过程(jsp页面修改)
- 单点登录(七)cas支持客户端登录——服务器端
- SSO单点登录系列5:cas单点登录增加验证码功能完整步骤
- CAS修改源码支持多种方式登录认证
- CAS修改源码支持多种方式登录认证
- 基于CAS的单点登录SSO[2]: 改造cas-overlays-template支持MySQL数据库
- SSO单点登录系列5:cas单点登录增加验证码功能完整步骤
- cas sso单点登录系列7_ 单点登录cas常见问题系列汇总
- cas支持手机号和用户名登录