自动登录Spring Security

RLu*_*eac 1 java spring spring-security

我正在开发一个带有Spring安全性的Web应用程序,我必须测试私有区域中的一些页面,每次我必须登录才能测试该页面.

是否有一项功能可以让Spring安全性自动登录给定用户,以便我可以直接测试页面?

谢谢

Par*_*nki 7

      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;
      }
Run Code Online (Sandbox Code Playgroud)

使用此方法并仅在此方法上传递用户名和请求对象.这对我有用.我认为这对你很有帮助.