2016-06-19 2 views
3

春のセキュリティを失敗します。私は、このようなオープンdemo.comまたはhttp://demo.comまたはそれらの組み合わせを試してみたときに、私は本番サーバーにデプロイする際リダイレクトは、私は私のセキュリティのために、次のセットアップを得た

@Override 
     protected void configure(HttpSecurity http) throws Exception { 
     http 
       .authorizeRequests() 
        .antMatchers("/admin/**", "/registration/**").access("hasRole('ROLE_USER') or hasRole('ROLE_ADMIN')") 
        .anyRequest().permitAll() 
       .and() 
        .requiresChannel().anyRequest().requiresSecure() 
       .and() 
        .exceptionHandling().accessDeniedPage("/denied") 
       .and() 
        .formLogin() 
        .loginPage("/login") 
        .failureUrl("/error-login"); 
     } 

今の問題は、私は、ありますリダイレクトが多すぎると失敗します。 Chromeで

は:Firefoxの上で

をERR_TOO_MANY_REDIRECTS:ページは、それが失敗するまでそれがリダイレクト言い換えれば、適切

をリダイレクトされていません。

ここで何が間違っているのか、問題を理解するために何ができるのかアドバイスしてください。

EDIT 1:

コントローラ要求

@Controller 
public class BaseController { 

    @RequestMapping(value = {"/", "/index"}) 
    public String home() { 
     return "index"; 
    } 
} 

ログ:(標準ブートシーケンス以外)エントリ

+0

は悪くは見えません。コントローラのエラーログとコードを公開できますか?何か間違っているかもしれません。 – Igor

+0

ログは空です。コントローラについてはEDIT 1を参照してください。 – Aeseir

+0

このような奇妙な問題が発生した場合は、できるだけ低いレベルのロギングとリプレイを、デバッガを使用してすべてのプロセスをステップごとに設定することをお勧めします。 – Igor

答えて

1

あなたが対応するHTTPを使用してWebSecurityConfigurerにポートマッピングを指定する必要がありませんアプリケーションのHTTPSポート:

@Override 
    protected void configure(HttpSecurity http) throws Exception { 
    http 
      .authorizeRequests() 
       .antMatchers("/admin/**", "/registration/**").access("hasRole('ROLE_USER') or hasRole('ROLE_ADMIN')") 
       .anyRequest().permitAll() 
      .and() 
       .requiresChannel().anyRequest().requiresSecure() 
      .and() 
       .portMapper()    
       .http(8080).mapsTo(8443); 
      .and() 
       .exceptionHandling().accessDeniedPage("/denied") 
      .and() 
       .formLogin() 
       .loginPage("/login") 
       .failureUrl("/error-login"); 
    } 

http.portMapper().http(8080).mapsTo(8443)は、リダイレクトを正しく実行するためにHTTP 8080ポートをHTTPS 8443ポートにマッピングします。

続きを読む:この設定から

関連する問題