基本的なセキュリティ機能を機能させるために、次のスターターパッケージをpom.xmlに追加しました
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
また、次の2つのプロパティをapplication.propertiesに追加しました。
security.user.name = guest
security.user.password = tiger
ホームページにアクセスすると、ログインボックスが表示され、期待どおりにログインできます。
次に、「ログアウト」機能を実装します。基本的に、ユーザーがリンクをクリックすると、ログアウトされます。ログインしてもブラウザにCookieが追加されないことに気付きました。 Spring SecurityはユーザーのHttpSessionオブジェクトを作成すると仮定しています。本当?このセッションを「無効化」して、ユーザーを他のページにリダイレクトする必要がありますか?スプリントブートベースのアプリケーションに「ログアウト」機能を実装する最良の方法は何ですか?
後期は決してないよりはましです。 Spring Bootは、CSRF保護を含む多くのセキュリティコンポーネントをデフォルトで設定します。行うことの1つはforce POST logout、こちらを参照してください: http://docs.spring.io/spring-security/site/docs/3.2.4.RELEASE/reference/htmlsingle /#csrf-logout
これが示唆するように、次の行に沿って何かを使用して、これをオーバーライドできます。
http.authorizeRequests()
.antMatchers("/admin/**").hasRole("ADMIN")
.anyRequest().fullyAuthenticated()
.and()
.formLogin().loginPage("/login").failureUrl("/login?error").permitAll()
.and()
.logout().logoutRequestMatcher(new AntPathRequestMatcher("/logout")).logoutSuccessUrl("/login");
最後の行は重要な行です。