web-dev-qa-db-ja.com

Spring Boot2.0.0で認証マネージャーを自動配線できませんでした

そのため、私は単純なSpringMVCアプリにoAuth2を実装しようとしています。

私がフォローしていたガイドでは、彼らのAuthorizationServerConfigurerAdapterで彼らは@AutowiredAuthenticationManager。彼らはSpringBootバージョン1.5.2を使用しました。

これは最新バージョンであるため、Spring Boot 2.0.0を使用したかったので、最新のプラクティスを学びたいと思いました。ただし、変更するとpom.xmlで次のようになります。

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.2.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

に:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.0.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

突然、AuthenticationManagerを自動配線できなくなりました。

Could not autowire. No beans of 'AuthenticationManager' type found.

誰かがこれに対する解決策を思い付くことができますか?

ありがとう!

6
Zohaib Khan

ブートスターターパッケージを続行する場合は、 リリースノート に従って、authanticationManagerBean内のWebSecurityConfigurerAdapterメソッドをオーバーライドする必要があります。ここにコードサンプルがあります:

@Configuration
@EnableWebSecurity
public static class WebSecurityConfig extends WebSecurityConfigurerAdapter {

    @Bean
    @Override
    public AuthenticationManager authenticationManagerBean() throws Exception {
        return super.authenticationManagerBean();
    }

}
23
erhanasikoglu

OAuth2の実装では、SpringBootのスターター依存関係とともにその依存関係を追加する必要があります。

<dependency>
    <groupId>org.springframework.security.oauth</groupId>
    <artifactId>spring-security-oauth2</artifactId>
</dependency>

それでも@AuthenticationManagerを使用できない場合は、次を使用してください。

<dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
</dependency>
0
Adya