SimpleAuthenticationInfo的参数

SimpleAuthenticationInfo的参数

仅供个人参考,以及学习记录。
SimpleAuthenticationInfo authenticationInfo = new SimpleAuthenticationInfo(
userInfo, //用户名–此处传的是用户对象
userInfo.getPassword(), //密码—从数据库中获取的密码
salt,
getName() //当前的realm名
);

Simple中可以传四个参数也可以传三个参数。

第一个参数,有的人传的是userInfo对象对用的用户名。在学习过程中,传入的都是user对象,没有尝试过对象对应的用户名,但是从前辈们的经验看得到,此处也可以传用户名,因人而异吧。

第二个参数,传的是从数据库中获取的password,然后再与token中的password进行对比,匹配上了就通过,匹配不上就报异常。

第三个参数,盐–用于加密密码对比,–获取的经验:为了防止两用户的初始密码是一样的,
–巨佬们的解答:四个参数,防止两用户可能初始密码相同时候用,token 用simplehash(四个参数的构造) 加密默认用了MD5 迭代一次加密,info中在密码比对调用new SimpleHash(String algorithmName, Object source)这个实例化对象默认迭代一次了,所以当你用三个参数加密时候可能两 个初始密码相同人的就没能区别开 (因此realm中密码要从数据库的查的原因),通过设置reaml 中credentialsMatcher 属性的各项属性可实现

第四个参数:当前realm的名字。

—ps:第一个参数可以直接通过token.getPrincipal()方法获取—获取当前记录的用户名,从这个用户名获取一系列的对应需求属性。
————————————————
版权声明:本文为CSDN博主「weixin_42195162」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42195162/article/details/89376076

posted @ 2020-03-04 17:17  一半人生  阅读(6107)  评论(1编辑  收藏  举报