[英]Auto Login Spring Security
我正在开发具有Spring Security的Web应用程序,并且我必须测试私有区域中的某些页面,并且每次我必须登录以测试该页面时。
是否具有使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;
}
使用此方法,仅在此方法上传递用户名和请求对象。 这对我有用。 我认为这对您有帮助。
我认为登录页面很难使用Selenium等自动化工具进行测试。
不久前,我遇到了同样的问题,并提出了解决方案,使它具有两个Maven配置文件,一个用于生产,另一个用于测试。 为了测试整个spring-security,将其关闭(通过过滤spring xml文件),并将其替换为硬编码的默认用户配置文件。
这使得Selenium不必担心登录页面上的验证码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.