2 votes

Impossible de résoudre la classe WebSecurityConfigurerAdapter dans SpingBoot version 2.0.6

Lorsque j'essaie d'écrire une classe de configuration, la classe WebSecurityConfigurerAdapter ne peut être résolue, de même que l'annotation @EnableWebSecurity.

J'ai pensé que c'était dû à un conflit de versions et j'ai donc essayé de changer la version de spring-boot-starter-security. Il s'avère que la classe ne peut pas être étendue dans la version 2.0.6 alors qu'elle fonctionne dans la 2.0.0.

Existe-t-il donc des substitutions pour WebSecurityConfigurerAdapter dans la version 2.0.6 ?

Voici mon pom.xml

<groupId>com.example</groupId>
<artifactId>registertest</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>registertest</name>
<description>Demo login and register for Spring Boot</description>

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

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <!--Version 2.0.6 will cause a conflict, we need to modify the version to 1.5.6-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
        <version>2.0.0.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-thymeleaf</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!--if you do not want to modify the version above, the following dep is the substitution-->
    <!--<dependency>-->
        <!--<groupId>org.springframework.security</groupId>-->
        <!--<artifactId>spring-security-config</artifactId>-->
        <!--<version>4.2.3.RELEASE</version>-->
    <!--</dependency>-->

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.security</groupId>
        <artifactId>spring-security-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>net.sourceforge.nekohtml</groupId>
        <artifactId>nekohtml</artifactId>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

1voto

kj007 Points 2996

Si vous utilisez le parent, il n'est pas nécessaire de mentionner la version dans les dépendances car il s'occupera automatiquement de toutes les versions compatibles et de la charge

alors utilisez simplement la version ci-dessous sans version .

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

Note : WebSecurityConfigurerAdapter est disponible dans la version 2.0.6 si vous souhaitez l'étendre ou si vous pouvez mettre en œuvre l'option suivante WebSecurityConfigurer .

1voto

Adina Fometescu Points 1532

Dans spring boot 2.0.6, vous utiliserez toujours :

 import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
 import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;

Si vous avez fait une mise à niveau de version, vous pouvez avoir les deux dans votre dépôt .m2 et maven ne sait pas lequel utiliser.

Solution : supprimez le dossier .m2 - vérifiez son emplacement en fonction de votre système d'exploitation - et notez qu'il s'agit d'un dossier caché.

Supprimer la version pour spring-boot-starter-security et exécuter la commande mvn clean package pour réimporter toutes les dépendances.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X