
[英]Spring Boot OAuth2 OAuth2Authentication vs UsernamePasswordAuthenticationToken
[英]How do I get a custom Spring 2 Authentication Provider to accept a UsernamePasswordAuthenticationToken?
在Spring 2中,我创建了一个自定义的身份验证提供程序,因为我无法像Spring希望的那样从数据库中获取密码,因为这样会出现黑匣子。 当我尝试进行身份验证时,我得到:
找不到org.springframework.security.providers.UsernamePasswordAuthenticationToken的AuthenticationProvider
我已将此bean放入我的security.xml中:
<bean id="imsAuthProvider" class="com.terrapages.mokbeecds.ims.IMSAuthenticationProvider">
<security:custom-authentication-provider />
</bean>
我相信,这就是我所需要的。 它应该只从表单中获取用户名和密码,然后将其传递给我的提供者以进行适当处理。 我的customAuthenticationProvider中也有这个:
public boolean supports(@SuppressWarnings("rawtypes") Class authentication) {
return (UsernamePasswordAuthenticationToken.class.isAssignableFrom(authentication));
}
据我了解,在将身份验证令牌提供给自定义身份验证提供程序之前已对其进行了检查。 如果返回false,则Spring检查下一个身份验证提供程序。
主要的authenticate(Authentication)
方法只能抛出BadCredentialsException
或AuthenticationServiceException
,据我所知,不应导致上面的输出。
关于Spring 2的信息很难找到,因为Spring 3目前无处不在。
如何使我的提供者接受UsernamePasswordAuthenticationToken
?
Spring Security 2的文档也非常好: http : //static.springsource.org/spring-security/site/docs/2.0.x/reference/html/springsecurity.html请使用以下支持方法:
public boolean supports(Class authentication) {
return (UsernamePasswordAuthenticationToken.class.isAssignableFrom(authentication));
}
已编辑
意见建议:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.