2016-04-29 29 views
0

私は春のセキュリティでWebアプリケーションを開発しています。プライベートエリアにあるいくつかのページをテストし、そのページをテストするためにログインするたびにテストする必要があります。自動ログイン春のセキュリティ

特定のユーザーに対して春のセキュリティのログインを自動的に行う機能があるので、ページを直接テストできますか?

おかげ

+0

最新の春のセキュリティバージョンを使用し、テストに '@ WithMockUser'などの注釈を付けることができます。http://docs.spring.io/spring-security/site/docs/current/reference/html/test-methodを参照してください。 .html –

答えて

4
 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; 
     } 

このメソッドを使用し、このメソッドではusernameとrequestオブジェクトのみを渡します。これは私のために働く。私はそれがあなたを助けると思う。

+0

清潔な解決のための名声 – angryip

0

私は、ログインページは、セレンなどの自動化ツールをテストするために困難な何かを持っていると仮定します。

私は以前も同じ問題を抱えていましたが、プロダクション用とテスト用の2つのプロファイルを持つ解決策が出ていました( )。テストのために、バネセキュリティ全体がオフにされ(バネXMLファイルをフィルタリングすることによって)、ハードコードされたデフォルトのユーザプロファイルに置き換えられます。

これにより、Seleniumはログインページでcaptchaを気にする必要がなくなりました。

+0

こんにちは、あなたは私の上記の答えをチェックすることができますこのセレンの解決策を避けたい。 –

関連する問題