簡體   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