私はSpring Security Configurationの何かを理解する必要があるだけです。以下の例を使用して...
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.httpBasic()
.and()
.authorizeRequests().antMatchers("/secret/**").authenticated()
.and()
.authorizeRequests().antMatchers("/**").permitAll();
}
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring().antMatchers("/resources/**");
}
}
configure(WebSecurity web)
メソッドの目的は何ですか?
この行のconfigure(HttpSecurity http)
メソッドに/resources/**
を追加するだけではいけませんか.authorizeRequests().antMatchers("/**", "/resources/**").permitAll();
同じように機能しませんか?つまり、認証なしで/resources/**
へのすべてのリクエストを許可しますか?
WebSecurity ignoring()
method Spring Securityを省略の一般的な使用。SpringSecurityの機能はいずれも使用できません。 WebSecurityはHttpSecurityに基づいています。
_@Override
public void configure(WebSecurity web) throws Exception {
web
.ignoring()
.antMatchers("/resources/**")
.antMatchers("/publics/**");
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/admin/**").hasRole("ADMIN")
.antMatchers("/publics/**").hasRole("USER") // no effect
.anyRequest().authenticated();
}
_
上記の例のWebSecurityは、Springに_/resources/**
_および_/publics/**
_を無視させます。したがって、HttpSecurityの.antMatchers("/publics/**").hasRole("USER")
はnconsideredです。
これにより、セキュリティフィルターチェーンから要求パターンが完全に省略されます。このパスに一致するものには、認証または承認サービスが適用されず、自由にアクセスできることに注意してください。
configure(HttpSecurity)
は、選択の一致に基づいて、Webベースのセキュリティをリソースレベルで設定できます。次の例では、_/admin/
_で始まるURLをADMIN roleを持つユーザーに制限し、他のすべてのURLをsuccessfully authentication。にする必要があることを宣言しています。
configure(WebSecurity)
は、グローバルセキュリティに影響を与えるの構成設定に使用されます(リソースを無視し、デバッグモードを設定し、カスタムファイアウォール定義を実装して要求を拒否します)。たとえば、次のメソッドでは、_/resources/
_で始まるすべての要求が認証で無視されるの目的になります。
HttpSecurity
を使用してpermitAll()
リクエストを試行する場合。 Spring Securityフィルターチェーンからのリクエストへのアクセスが許可されます。認証/承認に基づいて許可または禁止する必要がある、このフィルターチェーンにも入る他の要求があるため、これはコストがかかります。
HttpSecurity.authorizeRequests().antMatchers("/**", "/resources/**").permitAll();
ただし、使用すると、resources
へのリクエストはすべて、Spring Security Filter Chainを完全に通過します。画像を表示したり、JavaScriptファイルを読み取ったりするために、認証や承認を行う必要がないため、安全です。
WebSecurity.ignoring().antMatchers("/resources/**");
configure(HttpSecurity):特定のhttpリクエストに対してWebベースのセキュリティを設定できます。これは、選択の一致に基づいて、リソースレベルでのWebベースのセキュリティの構成に使用されます。
configure(WebSecurity):Spring Securityが無視する必要のあるRequestMatcherインスタンスを追加できます。