2016-09-28 7 views
0

У меня проблема с Vertx oauth2.В Vertx - как сделать обратный вызов?

Я после этого учебника http://vertx.io/docs/vertx-web/java/#_oauth2authhandler_handler:

OAuth2Auth authProvider = OAuth2Auth.create(vertx, OAuth2FlowType.AUTH_CODE, new OAuth2ClientOptions() 
    .setClientID("CLIENT_ID") 
    .setClientSecret("CLIENT_SECRET") 
    .setSite("https://github.com/login") 
    .setTokenPath("/oauth/access_token") 
    .setAuthorizationPath("/oauth/authorize")); 

// create a oauth2 handler on our domain: "http://localhost:8080" 
OAuth2AuthHandler oauth2 = OAuth2AuthHandler.create(authProvider, "http://localhost:8080"); 

// setup the callback handler for receiving the GitHub callback 
oauth2.setupCallback(router.get("/callback")); 

// protect everything under /protected 
router.route("/protected/*").handler(oauth2); 
// mount some handler under the protected zone 
router.route("/protected/somepage").handler(rc -> { 
    rc.response().end("Welcome to the protected resource!"); 
}); 

// welcome page 
router.get("/").handler(ctx -> { 
    ctx.response().putHeader("content-type", "text/html").end("Hello<br><a href=\"/protected/somepage\">Protected by Github</a>"); 
}); 

Идея должна иметь в защищенной папке всех веб-страницах, что требует авторизации.
Когда я хочу получить доступ к защищенной веб-странице, я перенаправляюсь на сайт входа в microsoft и после входа в систему я перенаправляюсь на мой обратный вызов.

Что я не понимаю, как обращаться с обратным вызовом сейчас? я получаю что-то вроде этого, как ответ:

https://localhost:8080/callback?code=AAABAAA...km1IgAA&session_state=.... 

Как я понял (https://blog.mastykarz.nl/building-applications-office-365-apis-any-platform/) Мне нужно извлечь как-то код и состояния сеанса и отправить обратно с почтой на:

https://login.microsoftonline.com/common/oauth2/token 

в чтобы получить токен.

Но я не понял, как это можно сделать с помощью Vertx. Любая помощь? Как извлечь код и сеанс и отправить обратно в Microsoft?

Я нашел несколько уроков здесь: https://github.com/vert-x3/vertx-auth/blob/master/vertx-auth-oauth2/src/main/java/examples/AuthOAuth2Examples.java, но не помог мне.

Я делаю это с помощью лазурной аутентификации (в учебнике написано Github, но я все это изменил в Microsoft).

ответ

0

Вы за прокси? Обработчик обратного вызова отправляет запрос провайдеру из приложения, а не из браузера. Для меня это заморозило все приложение. Вы можете установить прокси-сервер с OAuth2ClientOptions, указанным в OAuth2Auth.create