使用带有oauth2的Spring启动但面临一些问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用带有oauth2的Spring启动但面临一些问题相关的知识,希望对你有一定的参考价值。

我正在使用带有oauth2的Spring启动,但收到以下错误:

org.springframework.beans.factory.BeanDefinitionStoreException: Failed to process import candidates for configuration class
 [org.springframework.boot.autoconfigure.cache.CacheAutoConfiguration];
 nested exception is java.lang.NoSuchMethodError: org.springframework.util.Assert.state(ZLjava/util/function/Supplier;)V

我认为pom文件中的依赖项存在一些版本问题。但我无法搞清楚。我是Spring boot的新手。请帮我解决这个问题..

我的POM如下所示:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>InventoryManagementAndBillingSystemFE_V2</groupId>
  <artifactId>InventoryManagementAndBillingSystemFE_V2</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>war</packaging>
  <dependencies>
      <!-- Spring MVC Dependency -->
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>4.3.10.RELEASE</version>
      </dependency>
      <!-- Spring ORM -->
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-orm</artifactId>
        <version>4.3.10.RELEASE</version>
      </dependency>
      <!-- Hibernate ORM -->
      <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>5.2.11.Final</version>
      </dependency>
      <!-- Hibernate-C3P0 Integration -->
      <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-c3p0</artifactId>
        <version>5.2.11.Final</version>
      </dependency>
      <!-- c3p0 -->
      <dependency>
        <groupId>com.mchange</groupId>
        <artifactId>c3p0</artifactId>
        <version>0.9.5.2</version>
      </dependency>
      <!-- https://mvnrepository.com/artifact/oracle/ojdbc6 -->
      <dependency>
            <groupId>oracle</groupId>
            <artifactId>ojdbc6</artifactId>
            <version>11.2.0.3</version>
      </dependency>
      <!-- https://mvnrepository.com/artifact/log4j/log4j -->
      <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.17</version>
      </dependency>
      <!-- Spring security dependency -->
      <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-web</artifactId>
        <version>4.1.2.RELEASE</version>
      </dependency>

      <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-config</artifactId>
        <version>4.1.2.RELEASE</version>
      </dependency>

      <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-taglibs</artifactId>
        <version>4.1.2.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.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <version>2.0.0.RELEASE</version>
      </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-cache</artifactId>
        <version>2.0.0.RELEASE</version>
    </dependency>

      <!--   <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-jpa</artifactId>
        <version>2.0.5.RELEASE</version>
      </dependency>-->
      <dependency>
        <groupId>org.springframework.boot</groupId> 
        <artifactId>spring-boot-starter-data-jpa</artifactId> 
        <version>2.0.0.RELEASE</version>
      </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-autoconfigure</artifactId>
            <version>2.0.0.RELEASE</version>
        </dependency>

      <!-- Spring security dependency ends-->
      <!-- Jackson API for JSON -->
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.8.7</version>
      </dependency>
      <!-- Servlet Dependency -->
       <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
        <scope>provided</scope>
      </dependency>
</dependencies>
<properties>
   <tomcat.version>8.0.43</tomcat.version>
 </properties>
  <build>
    <sourceDirectory>src.main.java</sourceDirectory>
    <plugins>
      <plugin>
        <artifactId>maven-war-plugin</artifactId>
        <version>2.6</version>
        <configuration>
          <warSourceDirectory>WebContent</warSourceDirectory>
          <failOnMissingWebXml>false</failOnMissingWebXml>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.5.1</version>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>
答案

最后我解决了这个问题。我从存储库文件夹中删除了所有jar,然后执行了Maven更新以下载依赖项。它对我有用。我做了几次然后它工作,我也删除了我在POM文件中专门提到的许多依赖项。

以上是关于使用带有oauth2的Spring启动但面临一些问题的主要内容,如果未能解决你的问题,请参考以下文章

带有 Spring Boot REST 应用程序的 OAuth2 - 无法使用令牌访问资源

无法在 Spring Oauth2 密码授予中获取访问令牌

带有 OAuth2FeignRequestInterceptor 的 Spring @FeignClient 不起作用

带有刷新令牌的 Spring Google OAuth2

带有 spring-security 的 OAuth2 - 通过 HTTP 方法限制 REST 访问

带有 OAuth2.0 的 Spring REST 不起作用