誰もが上書きする際に説明してもらえconfigure(HttpSecurity)
、configure(WebSecurity)
とconfigure(AuthenticationManagerBuilder)
?
誰もが上書きする際に説明してもらえconfigure(HttpSecurity)
、configure(WebSecurity)
とconfigure(AuthenticationManagerBuilder)
?
回答:
configure(AuthenticationManagerBuilder)は、AuthenticationProvidersを簡単に追加できるようにすることで、認証メカニズムを確立するために使用されます。たとえば、以下は、組み込みの「user」および「admin」ログインによるメモリ内認証を定義します。
public void configure(AuthenticationManagerBuilder auth) {
auth
.inMemoryAuthentication()
.withUser("user")
.password("password")
.roles("USER")
.and()
.withUser("admin")
.password("password")
.roles("ADMIN","USER");
}
configure(HttpSecurity)は、選択の一致に基づいて、リソースレベルでのWebベースのセキュリティの構成を許可します。たとえば、以下の例では、/ admin /で始まるURLをADMINロールを持つユーザーに制限し、他のURLは認証に成功しました。
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/admin/**").hasRole("ADMIN")
.anyRequest().authenticated()
}
configure(WebSecurity)は、グローバルセキュリティに影響を与える構成設定に使用されます(リソースを無視、デバッグモードを設定、カスタムファイアウォール定義を実装して要求を拒否)。たとえば、次のメソッドでは、認証のために/ resources /で始まるすべての要求が無視されます。
public void configure(WebSecurity web) throws Exception {
web
.ignoring()
.antMatchers("/resources/**");
}
詳細については、次のリンクを参照してください。SpringSecurity Java Config Preview:Web Security
WebSecurity ignoring()
メソッドの一般的な使用はSpring Securityを省略します、Spring Securityの機能はすべて利用できなくなります。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/**
ます。したがって、.antMatchers("/publics/**").hasRole("USER")
HttpSecurityの考慮さ。
これにより、セキュリティフィルターチェーンから要求パターンが完全に省略されます。このパスに一致するものには、認証または承認サービスが適用されず、自由にアクセスできることに注意してください。
configure(HttpSecurity)
でWebベースのセキュリティを設定できます 選択の一致に基づいてリソースレベル。たとえば、以下の例/admin/
は、ADMINロールを持つユーザーに始まるURLを制限し、他のすべてのURLを正常に認証。
configure(WebSecurity)
構成設定に使用されます グローバルセキュリティに影響(リソースを無視、デバッグモードを設定、カスタムファイアウォール定義を実装して要求を拒否)。たとえば、次の方法では、で始まるすべての要求が認証の目的/resources/
で無視されます。
AuthenticationManagerBuilder
extends AbstractConfiguredSecurityBuilder<AuthenticationManager,AuthenticationManagerBuilder>
implements ProviderManagerBuilder<AuthenticationManagerBuilder>
SecurityBuilderは、AuthenticationManager
。メモリ内認証、LDAP認証、JDBCベースの認証、UserDetailsServiceの追加、AuthenticationProviderの追加を簡単に行うことができます。
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication().withUser("user").password("password").roles("USER");
auth.userDetailsService(customUserDetailService).passwordEncoder(new BCryptPasswordEncoder());
}
http.authorizeUrls()
。おそらくhttp.authorizeRequests()
少し前に名前が変更された可能性があります。