AuthenticationInfo info = new SimpleAuthenticationInfo(
user,
user.getPassword(),
getName());
第一点就是对比的那些东西
第一个参数:查出来的user
第二个参数:user.getPassword(这里是数据库中获取的密码)
第三个参数:当前realm的名字
这块对比逻辑是先对比username,但是username肯定是相等的,所以真正对比的是password。从这里传入的password(这里是从数据库获取的)和token(filter中登录时生成的)中的password做对比,如果相同就允许登录,不相同就抛出异常。
第二点:
@Bean
public Realm realm() {
MyRealm myRealm = new MyRealm();
myRealm.setCredentialsMatcher(hashedCredentialsMatcher());//引入了加密密码凭证
return myRealm;
}
设置进入到上面设置的机密凭证