问题:使用springsecurity登录时,我们采用自定义AuthenticationProvider和AuthenticationProcessingFilter及自定义UsernamePasswordAuthenticationToken,在AuthenticationProvider的方法“authenticate”最后可能需要重新创建自定义UsernamePasswordAuthenticationToken对象,如果此处重新创建的UsernamePasswordAuthenticationToken对象与自定义AuthenticationProcessingFilter在“attemptAuthentication”方法中创建的自定义UsernamePasswordAuthenticationToken对象相同属性值设置有遗漏导致不一致的话,可能会登录时一直报错。
原因:登录时自定义AuthenticationProvider的方法“authenticate”会调用多次,调用第一次自定义UsernamePasswordAuthenticationToken从自定义AuthenticationProcessingFilter中得来,第二次之后则从AuthenticationProvider的方法“authenticate”中得来,所以如果两边相同属性值设置不一致的话就会一直报错。