web-dev-qa-db-ja.com

@EnableGlobalMethodSecurity vs @EnableWebSecurity

Spring 4を使用してREST APIを開発しています。SpringSecurityを使用してエンドポイントの一部を保護したいのですが、読んだ内容に基づいて@EnableGlobalMethodSecurityまたは@EnableWebSecurity。残念ながら、これらについて見つけたドキュメントは、それらが何をするのか(またはどのように比較するのか)を明確に説明していません。 Spring REST APIを、標準のリレーショナルデータベースで宣言されたデータと関係に基づく認証と承認で保護したい場合、Spring 4でこれを達成するための推奨方法は何ですか?

33
Christopher

EnableWebSecurityは、 HttpSecurity を使用して構成を提供します。XML構成で_<http></http>_タグで見つけることができる構成を提供します。URLパターン、認証エンドポイントに基づいてアクセスを構成できます。 、ハンドラーなど...

EnableGlobalMethodSecurityはメソッドにAOPセキュリティを提供し、有効にするアノテーションの一部はPreAuthorizePostAuthorizeであり、 JSR-25 のサポートもあります。 設定には他にもパラメータがあります

ニーズに合わせて、2つを混合することをお勧めします。 RESTを使用すると、HttpSecurity#antMatchers(HttpMethod,String...)はHttpメソッドの制御を受け入れるため、_@EnableWebSecurity_でのみ必要なすべてを達成できます。

39