第一种情况:

检查你的 doGetAuthenticationInfo方法中的参数,这个参数的含义是获取你登陆的账户和密码

查看这个参数是否可以获取到

第二种情况

查看一下装配信息中的数据是否有空值


//装配认证信息
SimpleAuthenticationInfo authenticationInfo = new SimpleAuthenticationInfo(
//用户名
username,
//密码
userInfo.getPassword(),
//salt
ByteSource.Util.bytes(userInfo.getCredentialsSalt()),
//realm name
getName()
);


第三种情况

自己匹配一下登陆密码->md5加密(包括加密次数)->与数据库存储的密码是否一致

在或者就是加密机制没有注入等等

我在这边给一个md5加密算法你们可以做一下验证

第四种情况、

就是查看当前查询sql的结果集是否只有一个