手动验证用户

时间:2010-03-17 22:18:00

标签: spring-security

我在使用oAuth获取凭据后尝试对用户进行身份验证(如果有所不同,则使用Twitter)。据我所知,我可以直接将Authentication对象放入SecurityContextHolder。我是这样做的:

Authentication auth = new TwitterOAuthAuthentication(member,
userDetailsService.loadUserByUsername(member.getUsername()).getAuthorities());
SecurityContextHolder.getContext().setAuthentication(auth);

这出于某种原因绝对没有。我错过了什么,我该怎么做才能完成需要?

1 个答案:

答案 0 :(得分:3)

尝试添加

auth.setAuthenticated(true);

在将身份验证设置为上下文之前。

以下代码适合我(在过滤器类中):

final Authentication auth = new CustomAuthenticationToken(user);
auth.setAuthenticated(true);
SecurityContextHolder.getContext().setAuthentication(auth);