spring-security - 手动验证用户身份

标签 spring-security

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

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

出于某种原因,这绝对没有任何作用。我缺少什么以及我应该做什么才能满足需求?

最佳答案

尝试添加

auth.setAuthenticated(true);

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

以下代码对我来说效果很好(在过滤器类中):

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

关于spring-security - 手动验证用户身份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2466312/

相关文章:

grails - 重定向后出现Grails Facebook身份验证插件错误

spring - 在 Spring security 中是否可以仅使用 HTTPS 进行登录?

java - 使用 Spring Security 和 Redis 进行基于 Cookie 的身份验证,用于具有 Java 配置的 RESTFul api

java - 有没有办法在Spring中不实现UserDetailsS​​ervice接口(interface)来实现认证和授权

Spring Security 与 REST 服务的 SAML token

grails - 您没有权限… Spring 安全四郎

spring - SP元数据签名

java - Spring Security访问被拒绝角色或还有什么?

java - 为什么 spring-security-core 不包括 commons-logging?

java - Spring Cloud Eureka 与 Spring security