繁体   English   中英

自动登录Spring Security

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM