私は何が間違っているのか分かりませんが、ResourceServerConfigurerAdapter
を使っていくつかのRESTリソースを保護しようとすると動作しません。 @PreAuthorize
を使用して目標を達成するか、WebSecurityConfigurerAdapter
のセキュリティを設定するだけです。Springリソースのセキュリティは '@ PreAuthorize'としか動作しません
実際には、WebSecurityConfigurerAdapter
はHttpSecurity
の設定ですべての可能性を盗んでいます。私は、それはフィルタリングの順序と関係があると信じています。私はドキュメントの情報を検索しましたが、それはかなり曖昧でした。私は春のブートバージョン1.5以降ResourceServerConfigurerAdapter
のフィルタリング順序に変更されていることを知っている、と私はプロパティに新しい秩序を設定した後に動作するようにそれを得るために管理:より具体的なのでsecurity.oauth2.resource.filter-order=3
、このコードを
@Override
public void configure(HttpSecurity http) throws Exception {
http.requestMatcher(new OAuthRequestedMatcher())
.anonymous().disable()
.authorizeRequests()
.antMatchers(HttpMethod.OPTIONS).permitAll()
.antMatchers("/api/hello").access("hasAnyRole('USER')")
.antMatchers("/api/me").hasAnyRole("USER", "ADMIN");
}
"/api/hello"
と"/api/me"
はコントローラメソッドの@PreAuthorize
注釈保護することのみ可能である:
ResourceServerConfigurerAdapter
上の)任意の結果を持っていません
しかし、私はそれがより良い方法で実行できることを恐れています。何か案は?