web-dev-qa-db-fra.com

utiliser Spring Cloud Gateway avec oauth2

je fais face à un problème lorsque j'utilise une passerelle de nuages ​​au printemps

est si une dépendance appelle spring-boot-starter-Tomcat directement ou de manière récursive 

cela ne fonctionnera pas car il démarrera le serveur Tomcat intégré et non le serveur Netty utilisé par la passerelle de cloud printanière 

j'ai commencé à résoudre ce problème en excluant cette dépendance 

        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-Tomcat</artifactId>
            </exclusion>
        </exclusions>

la passerelle des nuages ​​du printemps a fonctionné avec succès 

mais parfois, je veux utiliser spring-cloud-starter-oauth2 pour utiliser @ EnableOAuth2Sso

je commence à utiliser 

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-oauth2</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-Tomcat</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

à cette époque, je suis confronté au gros problème qui jette exception en disant 

Causée par: Java.lang.IllegalStateException: échec de l'introspection des méthodes annotées sur la classe org.springframework.security.oauth2.config.annotation.web.configuration.OAuth2ClientConfiguration ......

Causée par: Java.lang.NoClassDefFoundError: javax/servlet/Filter

7
ashraf revo

Comme vous l'avez vu, la passerelle cloud Spring utilise le modèle réactif et est basée sur netty plutôt que sur Tomcat. Le changement réactif est un changement majeur et n'est actuellement pas pris en charge par Spring Security, mais son travail est en cours. Vous pouvez le suivre à l'adresse suivante: https://github.com/spring-cloud/spring-cloud-gateway/issues/179

2
Ryan Dawson