2017-10-05 5 views
0

J'ai suivi cet exemple de sécurisation de la route avec OAuth2 avec le fournisseur GitHub: http://vertx.io/docs/vertx-web/java/#_oauth2authhandler_handler et fonctionne correctement, sauf les paramètres GET manquants après la redirection de la requête.Vertx - paramètres GET manquants lors de la sécurisation de la route avec OAuth2

Mon code:

public class MyVerticle extends AbstractVerticle { 
    @Override 
    public void start() throws Exception { 
     HttpServer server = vertx.createHttpServer(); 
     Router router = Router.router(vertx); 

     OAuth2Auth authProviderGitHub = GithubAuth.create(vertx, "<CLIENT_ID>", "<CLIENT_SECRET>"); 

     OAuth2AuthHandler oauth2 = OAuth2AuthHandler.create(authProviderGitHub, "http://localhost:8080/callback"); 

     oauth2.setupCallback(router.route()); 

     router.route("/protected/*").handler(oauth2); 

     Handler<RoutingContext> requestHandler = (routingContext) -> { 
      String paramValue = routingContext.request().getParam("param"); 
      routingContext.response().end("PARAM: " + paramValue); 
     }; 

     router.get("/endpoint").handler(requestHandler); 
     router.get("/protected/endpoint").handler(requestHandler); 

     server.requestHandler(router::accept).listen(8080); 
    } 
} 

J'ai deux points d'extrémité simples:

/endpoint  // public, without protection 

et

/protected/endpoint // protected with OAuth2 

Quand j'appelle à partir d'un navigateur /point final avec

http://localhost:8080/endpoint?param=foo 

cela fonctionne comme prévu et le retour PARAM: foo, alors que quand je l'appelle point final protégé par

http://localhost:8080/protected/endpoint?param=foo 

il me rediriger correctement à la page de connexion GitHub, puis revenez requête à mon gestionnaire mais sans paramètres GET , donc la réponse de l'extrémité est PARAM: null.

Une idée de ce que je fais mal?

Répondre

1

Sur vert.x < = 3.4.2 seul le chemin était utilisé pour la redirection, la série 3.5 a été améliorée et peut compter sur l'uri complet, donc votre code fonctionnera sur cette version.

+0

Le 3.5.0.Beta1 ne fonctionne toujours pas. Savez-vous si le changement à POST et fournissant des paramètres dans le corps fonctionnera avec 3.4.2? – Rem

+0

C'est correct, le correctif a été fusionné après l'instantané de beta1 actuel. –

+0

https://github.com/vert-x3/vertx-web/issues/710 – ses