如何从Spring Security中的java代码登录用户?

Dam*_*eev 2 java session spring spring-security

我正在尝试在我的 Java 代码中编写一些脚本,我需要在其中登录用户,执行一些类似于真实用户可以从 Web 客户端执行的操作并为每个用户注销。

这在 Spring Security 中是如何工作的?我该怎么办?我的意思是如何模拟真实的用户身份验证,使用会话、角色和权限?

非常感谢!

Dam*_*eev 5

不久后我找到了解决方案:

@Component
public class AuthorityUtils {

//org.springframework.security.authentication.AuthenticationManager
@Autowired
private AuthenticationManager authenticationManager;

public void loginDirectly(String email, String password) {
    UsernamePasswordAuthenticationToken loginToken = new UsernamePasswordAuthenticationToken(email, password);
    Authentication authenticatedUser = authenticationManager.authenticate(loginToken);
    SecurityContextHolder.getContext().setAuthentication(authenticatedUser);
    }
}
Run Code Online (Sandbox Code Playgroud)