2016-10-06 2 views
0

에서 나는 다음과 같은 코드가 있습니다멀티의 OAuth 인증 Vertx

Class<OAuthHandler> _tempClass = (Class<OAuthHandler>) Class.forName(providerClass); 
    Constructor<OAuthHandler> oAuthHandlerConstructor = _tempClass.getDeclaredConstructor(Vertx.class); 
    OAuthHandler oAuthHandler = oAuthHandlerConstructor.newInstance(vertx); 
    OAuth2Auth oAuth2Auth = oAuthHandler.getoAuth2Auth(); 
    /* AccessToken accessToken = */ oAuth2Auth.getToken(oAuthHandler.getTokenConfig(code), accessTokenResponse -> { 
     if (accessTokenResponse.failed()) { 
      System.out.println("Failed to obtain token"); 
     } else { 
      AccessToken accessToken = accessTokenResponse.result(); 
      // Return the token? Somehow. 
     } 
    }); 

oAuthHandler는 공급자의 이름에 따라 약간의 설정 등을 제공하는 프로 바이더 고유의 구현이며, 단순히 vertx-auth-oauth2 라이브러리에서 제공하는 방법을 감싸는합니다.

반환 토큰을 사용하고 싶지만 getToken 람다 안에 있지 않으므로 필요한 사용자 정보를 얻을 수 있습니다.

Vert.x Futures에 대한 몇 가지 사항을 살펴 보았지만 여기서도 사용할 수 있는지 확신 할 수 없지만 솔루션에 대한 제안이나 사례는 많은 도움이됩니다.

답변

0

Vert.x OAuth2 지원은 공급 업체에 따라 다릅니다.

  • 구글
  • 트위터
  • Github에서
  • 링크드 인
  • 페이스 북
  • Keycloak
: 문서 http://vertx.io/docs/vertx-web/java/#_oauth2authhandler_handler에 따르면 동일한 코드는 다음 공급자를 처리 할 수있는 것을 볼 수 있습니다

그리고 3.4가 출시 되 자마자 일부 작은 fi XES가와 그것도 호환됩니다

  • 푸른 AD

당신이 당신의 자신의 업체가 있다면 당신은 또한 사용할 수 있도록 또한 핸들러가 일반적이다.

http://vertx.io/docs/vertx-auth-oauth2/java/#_getting_started : 이제 당신이 직접 OAuth2 클라이언트와 상호 작용을 원하고 당신의 모든이를 숨 깁니다 때문에 당신은 아마 OAuth2Handler을 원하지 않는, 직접 토큰을 사용하는 방법 질문의 두 번째 부분에 대한

위의 문서에서 리플렉션을 사용하지 않고 get 토큰과 상호 작용할 수있는 시작 코드 예제가 있습니다. 이것은 내부 api의 변화가 당신에게 상처를주지 않기 때문에 더 나은 방법입니다.

+0

나는 그것이 좋은 문서라고 말하지 않을 것이다. 운수 나쁘게. 여기 저기에있는 일부. 아마 그 대답은 받아 들일 수 없습니다 .. 또한 https://groups.google.com/forum/#!msg/vertx/5cPvaXbfCbU/uGCEo70jAQAJ – ses