web-dev-qa-db-ja.com

HttpSecurity、WebSecurity、およびAuthenticationManagerBuilder

configure(HttpSecurity)configure(WebSecurity)、およびconfigure(AuthenticationManagerBuilder)をオーバーライドするタイミングを説明できる人はいますか?

90
user3488241

configure(AuthenticationManagerBuilder)は、AuthenticationProvidersを簡単に追加できるようにすることで認証メカニズムを確立するために使用されます。以下は、組み込みの「ユーザー」および「管理者」ログインによるメモリ内認証を定義しています。

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/**");
}

詳細については、次のリンクを参照してください Spring Security Java Config Preview:Web Security

109
Nick Vasic