そのため、私は単純なSpringMVCアプリにoAuth2を実装しようとしています。
私がフォローしていたガイドでは、彼らのAuthorizationServerConfigurerAdapter
で彼らは@Autowired
AuthenticationManager
。彼らは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.
誰かがこれに対する解決策を思い付くことができますか?
ありがとう!
ブートスターターパッケージを続行する場合は、 リリースノート に従って、authanticationManagerBean
内のWebSecurityConfigurerAdapter
メソッドをオーバーライドする必要があります。ここにコードサンプルがあります:
@Configuration
@EnableWebSecurity
public static class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Bean
@Override
public AuthenticationManager authenticationManagerBean() throws Exception {
return super.authenticationManagerBean();
}
}
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>