问题
在进行统一账号密码认证的http测试时报错500,如下图所示
问题原因
由于我们期待的账号和密码认证是通过userDetailsService对象来实现的,所以当我们将userDetailsService对象注入DaoAuthenticationProviderCustom类后需要屏蔽原本的密码比对。
未屏蔽时DaoAuthenticationProviderCustom类中的方法如下所示:
屏蔽后
解决方案
用如下代码替换原本DaoAuthenticationProviderCustom类中的additionalAuthenticationChecks方法。
//屏蔽密码对比
protected void additionalAuthenticationChecks(UserDetails userDetails, UsernamePasswordAuthenticationToken authentication) throws AuthenticationException {
}