2016-08-31 5 views
1

私は春のMVCと春のセキュリティ4.0.2.RELEASEを使用しています。私は役割を果たすことができ、ユーザーにパーミッションを与えることができ、そのユーザーはこのコードでページにアクセスできます。春のセキュリティでは、ログインページに入る場合は、登録ユーザーをインデックスページにリダイレクトする方法

http.authorizeRequests().antMatchers("/dba/**").access("hasRole('ROLE_ADMIN') or hasRole('ROLE_DBA')") 

私のサイトでは、登録ユーザーはログインページにアクセスすべきではなく、匿名ユーザーだけがそこにアクセスできるはずです。登録ユーザーがログインページにアクセスしようとすると、インデックスページまたは別のエリアにリダイレクトされます。これどうやってするの?

+0

ユーザーIDを受け入れずにユーザーが登録されているかどうかを確認しますか? –

答えて

0

さまざまな方法で対応できます。

ログインページのURIは、おそらくコントローラメソッドによって処理されます。

@RequestMapping("/login") 
    public String getLoginPage(){ 
     SecurityContext securityContext = SecurityContextHolder.getContext(); 
     Authentication auth = securityContext.getAuthentication(); 
     if(auth != null && auth.isAuthenticated()){ 
      return "redirect:/index"; 
     } 
     else return "loginTemplate"; 
    } 

あなたはまた、インターセプタを構築できる直前コントローラに到達したリクエストをキャッチし、そして作る:ユーザーがコントローラのメソッド内で、真の場合は認証された場合、最も簡単な方法は、単にリダイレクトを作っチェックすることができユーザーがすでにログインしている場合にリダイレクトします。

関連する問題