java - 自动登录 Spring Security

标签 java spring spring-security

我正在开发一个带有 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/

相关文章:

java - 找不到 Spring Security/登录

java - Spring 安全 : using relative path

java - 整数值比较

spring - Spring JPA-找不到实体管理工厂,为什么?

java - 从上下文映射资源

java - Spring MVC 中的延迟计算

java - 如何在 GlassFish 中启用可选的客户端证书请求?

java - 列 'column' 不能为空

java - 如何在 Volley 进行时制作应用程序 "sleep"

java - 如何使用 Spring MVC、Spring Security 和 FreeMarker 在每个页面上显示用户名