CAS 5.3.1系列之支持JDBC认证登录(二)

网友投稿 756 2022-05-30

CAS 5.3.1系列之支持JDBC认证登录(二)

在项目中,我们肯定是不能用默认的静态账号密码,所以我们需要实现对jdbc或者其它认证方式的支持,将cas-overlay-template-5.2\pom.xml复制到项目里,将application.properties复制到resources文件夹

org.apereo.cas cas-server-support-jdbc ${cas.version} org.apereo.cas cas-server-support-jdbc-drivers ${cas.version}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

注意5.3.1版本的cas-server-support-jdbc-drivers数据库驱动是mysql8左右的,所以如果是mysql5版本的,就不使用自适配驱动,自己加上:

mysql mysql-connector-java 5.1.27

1

2

3

4

5

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

1

2

3

4

5

6

7

8

9

CAS 5.3.1系列之支持JDBC认证登录(二)

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

然后启动项目,访问,暂时不用密码加密方式,如果要MD5密码可以如下设置

# NONE|DEFAULT|STANDARD|BCRYPT|SCRYPT|PBKDF2 cas.authn.jdbc.query[0].passwordEncoder.type=DEFAULT cas.authn.jdbc.query[0].passwordEncoder.encodingAlgorithm=MD5

1

2

3

4

也可以自定义加密方式:

import org.springframework.security.crypto.password.PasswordEncoder; /** *

 * 自定义PasswordEncoder * 
* *
 * @author mazq * 修改记录 * 修改后版本: 修改人: 修改日期: 2020/04/24 17:02 修改内容: * 
*/ 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; } }

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

然后修改配置:

cas.authn.jdbc.query[0].passwordEncoder.type=org.muses.jeeplatform.cas.authentication.encode.MD5PasswordEncoder

1

代码例子参考: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

JDBC

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:精讲RestTemplate第1篇-在Spring或非Spring环境下如何使用
下一篇:MongoDB中间件工具mgm入门介绍(二)
相关文章