CAS单点登录-密码管理(十三)
CAS单点登录-密码管理(⼗三)
CAS单点登录-密码管理(⼗三)
看到这⾥我们⽬前已经把cas版本升级到5.1.5
再次强调⼀下,所有的博客都有相关的源码,可以在博⽂的底部进⾏下载测试。
在单点登录系统中,少不了修改密码、忘记密码、重置密码、回密码的功能,哪怕这个过程不是sso来胜任,肯定有⼀个模块甚⾄⼀个系统来做这个密码管理功能,但刚刚好cas⾃带了这个密码管理功能,⾮常简单也很好理解
先说⼀下我们⽇常的⼀些重置密码做法:
1. 输⼊⽤户名/邮箱/⼿机号(其实就是确定到⼀个⽤户)
2. 发送邮件/验证码进⾏验证
3. 邮箱验证(打开链接)/⼿机验证(输⼊验证码)
4. 加强验证回答问题(可⽆)
5. 输⼊新密码,重置
但像qq那样,回密码功能⽆⾮是多了⼀个审核功能,其实⼀般来说,邮箱/短信验证加上回答问题已经满⾜⽇常的需求了
malaysia chabor这张不啰嗦那么多,直接来实战~
密码管理特性
cas⽬前已经⽀持很多常⽤的特性,那么密码管理也是⽀持得不错的
邮件发送验证
短信发送验证
问题回答验证
忘记密码/重置密码UI
那么我们挑邮件发送验证,问题回答验证来进⾏简单的罗列⼀下,好给⼤家⼀个简单的介绍,当然了,这些界⾯是cas提供的,我们在上线的时候的⼀般需要⾃定义⼀套,有⽂章简单介绍了⼀下
实战
配置说明
上⾯的流程已经明确出⼀些东西,其中包括:
根据⽤户名寻邮箱/⼿机号
问题数据查
邮箱/⼿机发送配置
密码重置策略配置(修改密码接⼝,加密策略)
父亲节application.properties
注意要点
1. 允许内置密码管理
2. 邮箱配置
3. 邮箱、问题、查sql配置
4. 修改密码sql配置另外可能会怀疑为什么会有那些问题,因为在sso-server/src/main/resources/profile/dev/sql/data-dev.sql 加⼊了以下数据#密码管理 开始#允许内置密码管理cas .abled =true #发送邮件spring .mail.host =smtp .qq spring .mail.port =465#邮箱⽤户名spring .mail.username =huang .wenbin @foxmail #邮箱授权码spring .mail.password =judnarjvmhsfbdji spring .stConnection =false spring .mail.properties.mail.smtp.auth =true #必须ssl spring .mail.properties.mail.able =true #邮箱查#根据⽤户名查问题cas .authn.pm.jdbc.sqlSecurityQuestions =select question, answer from sys_user_question where username=?#根据⽤户名查邮箱cas .authn.pm.jdbc.sqlFindEmail =select email from sys_user where username=?cas .authn.pm.jdbc.sqlChangePassword =update sys_user set  password=? where username=?cas .authn.pm.jdbc.url =${cas .authn.jdbc.query [0].url }cas .authn.pm.jdbc.user =${cas .authn.jdbc.query [0].user }cas .authn.pm.jdbc.password =${cas .authn.jdbc.query [0].password }cas .authn.pm.jdbc.dialect =${cas .authn.jdbc.query [0].dialect }cas .authn.pm.jdbc.driverClass =${cas .authn.jdbc.query [0].driverClass }#密码修改加密规则,这个必须要和原始密码加密规则⼀致cas .authn.pm.pe =${cas .authn.jdbc.query [0].pe }cas .authn.pm.jdbc.passwordEncoder.characterEncoding =${cas .authn.j
dbc.query [0].passwordEncoder.characterEncoding }cas .authn.pm.dingAlgorithm =${cas .authn.jdbc.query [0].dingAlgorithm }cas .authn.pm.jdbc.passwordEncoder.secret =${cas .authn.jdbc.query [0].passwordEncoder.secret }#默认是false ,不会提交update 语句cas .authn.pm.jdbc.autocommit =true #重置信息 apereo.github.io/cas/
5.1.x/installation/Configuration-Properties.html#password-management cas .set.from =${spring .mail.username }#发送邮件标题cas .set.subject =SSO DEMO 重置密码#邮件内容,必须要有%s ,因为会⽣成⼀个连接并且带了token ,否则⽆法打开链接,当然这个链接也和cas.server.prefix 有关系cas . =打开以下链接重置您的密码(SSO-DEMO ): %s #token 失效分钟数cas .pirationMinutes =10cas .ailAttribute =mail #是否开启问题回答cas .set.securityQuestionsEnabled =true #新密码必须匹配表达式cas .authn.pm.policyPattern =\\d{3,10}#密码管理 结束
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
31
32
33
34
35
36
37
38
39
40
41
42
四大银行是哪四大银行?
43
44
45
46
47
48
49
效果
打开登录页,点击登录按钮下发的重置密码按钮
邮箱收取打开验证 INSERT  INTO  SYS_USER_QUESTION VALUES  ('admin', '使⽤过的密码是?',  '123');INSERT  INTO  SYS_USER_QUESTION VALUES  ('admin', '你的年龄是?',  '24');INSERT  INTO  SYS_USER_QUESTION VALUES  ('zhangsan', '我的名字是?',  'zhangsan');INSERT  INTO  SYS_USER_QUESTION VALUES  ('zhangsan', '我在哪⾥⼯作?',  'guangzhou');1
2
3
4
打开验证并回答问题
提交修改
任务完成
另外:由于已经发布的代码默认提交是false,导致不能修改密码成功请添加以下配置cas.authn.pm.jdbc.autocommit=true
下载代码尝试: 其他版本可以到或者查看
发现⼀些意外的事情可以考虑翻翻前⾯的博客进⾏学习哦
作者联系⽅式
如果技术的交流或者疑问可以联系或者提出issue。
邮箱:huang.wenbin@foxmail
QQ: 756884434 (请注明:SSO-CSDN)

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。