Security部分
-
WebSecurityConfigurerAdapter
security 配置的核心类在这里配置权限等信息
-
authentication
authentication 是认证(登陆)
-
authorization
authorization 指的是授权(获取权限)
-
所有post请求都403异常的原因
据说是因为跨域欺骗问题http.csrf().disable()可以解决
但是为什么会有跨域? -
security整体架构图
-
认证流程图
关键逻辑在 AbstractUserDetailsAuthenticationProvider 类的authenticate方法中
-
idea 泛型不提示警告问题怎解决?
-
怎么获取登陆异常信息?
-
配置多个UserDetailsService的情况
结果都不生效?还是说没用对?
-
BCryptPasswordEncoder
一种不可逆的摘要算法,不同盐生成的摘要不同,验证不需要盐
String p1 = BCrypt.hashpw("root", BCrypt.gensalt());
String p2 = BCrypt.hashpw("root",BCrypt.gensalt());
System.out.println(p1);
System.out.println(p2);
System.out.println(BCrypt.checkpw("root", p1));
System.out.println(BCrypt.checkpw("root", p2));
输出结果:
$2a$10$6Q6STleeJc0e49C98ur.7OHEvzpbrfxLedv908Qz8Sfi3DtUfhLKK
$2a$10$w8zEZLf6LLYG4KksSLTek.LAuzOJX.Eeb1MntUHksFhXY1J48PuTC
true
true
-
授权流程图
-
用户传入的密码应该是明文还是密文?
-
传入明文,然后加密后和数据库的密文对比,缺点明文密码可能被获取。
-
传入密文,然后直接和数据密文对比,即便被获取也是密文,但是直接那密文也能登陆和明文密码没区别。
那种好?有没有一种数据库存密文,前端传入不同密文,然后还能严重这两个密文是同一个密码的加密方式?
-
-
AccessDecisionManager 投票决策管理者(什么情况需要投票?)
AccessDecisionManager 通过投票决定是否有范围权限,有三种实现
-
AffirmativeBased:只要有一票通过就通过,全都弃权也算通过(默认是这种策略)
-
ConsensusBased:投票通过的多余不通过的就通过,等于情况需要单独指定
-
UnanimousBased:只要有一票反对就不通过
-
-
待定1111
Oauth 部分
AuthorizationServerConfigurerAdapter 授权关键类
标签:知识点,Spring,System,密文,println,root,Security,BCrypt,out From: https://www.cnblogs.com/cxygg/p/16875751.html