当启用@EnableAuthorizationServer注解时,启动项目报错
报错信息
Description:
Field configurers in org.springframework.security.oauth2.config.annotation.web.configuration.AuthorizationServerSecurityConfiguration required a bean of type 'java.util.List' that could not be found.
The injection point has the following annotations:
- @org.springframework.beans.factory.annotation.Value(value=#{@autowiredWebSecurityConfigurersIgnoreParents.getWebSecurityConfigurers()})
Action:
Consider defining a bean of type 'java.util.List' in your configuration.
Process finished with exit code 1
因为SpringBoot2.x已经将 security.oauth2的自动配置类spring-boot-autoconfigure的jar中移除。
如OauthAuthorizationServerConfiguration.java配置类在spring-boot-autoconfigure-1.3.5.RELEASE.jar中还是存在的
解决方法
添加maven依赖
<dependency>
<groupId>org.springframework.security.oauth.boot</groupId>
<artifactId>spring-security-oauth2-autoconfigure</artifactId>
<version>2.0.0.RELEASE</version>
</dependency>
SpringBoot2.x集成springSecurity,OAuth2.0的完整maven依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
<version>2.2.3.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.security.oauth</groupId>
<artifactId>spring-security-oauth2</artifactId>
<version>2.2.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.security.oauth.boot</groupId>
<artifactId>spring-security-oauth2-autoconfigure</artifactId>
<version>2.0.0.RELEASE</version>
</dependency>