2016-03-27 18 views
6

私はspring-boot-starter-securityの依存関係を持つspring bootを使用しています。ログインに成功した後にリダイレクトを設定するにはどうすればよいですか?

適切な資格情報があれば、正常にログインするアプリケーションがあります。しかし、私がログインするたびに私はどこにでもリダイレクトされていません。これをどうすれば設定できますか?

<form th:action="@{/login}" method="post"> 
     <div><label> User Name : <input type="text" name="username"/> </label></div> 
     <div><label> Password: <input type="password" name="password"/> </label></div> 
     <div><input type="submit" value="Sign In"/></div> 
</form> 

私は番目の変更しようとしている:以下

は、フォームで上記のアクションタグを私はそれをどこに行くことができませんでした。

MvcConfig方法は以下の通りです:ログイン成功は、MVCの春ではない、春のセキュリティに適用する必要があります後

public void addViewControllers(ViewControllerRegistry registry) { 
    registry.addViewController("/login").setViewName("login"); 
    registry.addViewController("/").setViewName("login"); 
} 

答えて

18

は、リダイレクトを定義します。

th:actionは、認証要求を処理するSpring Securityエンドポイントを定義します。リダイレクトURLは定義しません。あなたの外から、Spring Boot Securityは/loginエンドポイントを提供します。デフォルトでは、アクセスしたセキュリティ保護されたリソースにログイン後、Spring Securityはリダイレクトします。常に特定のURLにリダイレクトしたい場合は、HttpSecurity設定オブジェクトを使用してそのURLに強制することができます。

最新バージョンのSpring Bootを使用していると仮定すると、JavaConfigを使用できるはずです。ここで

は簡単exempleです:

@Configuration 
@EnableWebSecurity 
public class SecurityConfig extends WebSecurityConfigurerAdapter { 

    @Autowired 
    private UserService userService; 

    @Override 
    protected void configure(HttpSecurity http) throws Exception { 
     // the boolean flags force the redirection even though 
     // the user requested a specific secured resource. 
     http.formLogin().defaultSuccessUrl("/success.html", true); 
    } 

    @Autowired 
    public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { 
     auth.userDetailsService(userService); 
    } 
} 

あなたは/success.html URLのコンテンツを提供するためにproprerエンドポイントを定義する必要がありますのでご注意ください。 src/main/resources/public/にデフォルトで利用可能な静的リソースは、テストの目的でこのトリックを行います。私は個人的にはThymeleafでコンテンツを提供するSpring MVC Controllerが提供する保護されたURLを独自に定義します。匿名ユーザーが成功ページにアクセスすることはできません。 Thymeleafは、HTMLコンテンツをレンダリングしながらSpring Securityと対話するための便利な機能です。

よろしくお願いします。 ダニエル

関連する問題