2017-10-05 3 views
0

Ich folgte diesem Beispiel der Sicherung Route mit OAuth2 mit GitHub-Provider: http://vertx.io/docs/vertx-web/java/#_oauth2authhandler_handler und es funktioniert gut, außer fehlende GET-Parameter nach Anforderungsumleitung.Vertx - fehlende GET-Parameter beim Sichern der Route mit OAuth2

Mein 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); 
    } 
} 

Ich habe zwei einfache Endpunkte:

/endpoint  // public, without protection 

und

/protected/endpoint // protected with OAuth2 

Wenn ich von einem Browser aufrufen /Endpunkt mit

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

funktioniert es wie erwartet und das Rück PARAM: foo, während, wenn ich rufe geschützten Endpunkt mit

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

es umleiten mich richtig auf GitHub Login-Seite, dann wieder Abfrage zu meinem Handler aber ohne GET-Parameter , daher ist die Antwort vom Endpunkt PARAM: null.

Irgendeine Idee, was ich falsch mache?

Antwort

1

Auf Vert.x < = 3.4.2 nur der Pfad wurde für die Umleitung verwendet, die 3.5-Serie wurde verbessert und kann auf die vollständige uri verlassen, so dass Ihr Code auf dieser Version funktioniert.

+0

Ein 3.5.0.Beta1 funktioniert immer noch nicht. Weißt du, ob die Umstellung auf POST und das Bereitstellen von Parametern im Körper mit 3.4.2 funktionieren wird? – Rem

+0

Das ist richtig, der Fix wurde nach dem Beta1-Snapshot zusammengeführt. –

+0

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

Verwandte Themen