我正在开发一个带有 spring security 的 web 应用程序,我必须测试一些位于私有(private)区域的页面,并且每次我都必须登录才能测试该页面。
是否有一种功能可以让给定用户自动登录 spring security,以便我可以直接测试页面?
谢谢
最佳答案
public Authentication authenticateUserAndSetSession(String username,HttpServletRequest request){
UserDetails userDetails = userDetailsServiceImpl.loadUserByUsername(username);
Authentication authentication = new UsernamePasswordAuthenticationToken(userDetails, userDetails.getPassword(), userDetails.getAuthorities());
SecurityContextHolder.getContext().setAuthentication(authentication);
request.getSession().setAttribute(HttpSessionSecurityContextRepository.SPRING_SECURITY_CONTEXT_KEY, SecurityContextHolder.getContext());
return authentication;
}
使用此方法并在此方法上仅传递用户名和请求对象。这对我有用。我认为这对您有帮助。
关于java - 自动登录 Spring Security,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36937414/