Аутентификация Oauth2 обрабатывает код программно - PullRequest
0 голосов
/ 07 декабря 2018

Я реализовал аутентификацию OAuth2, используя библиотеки Apache OLTU.Это работает, но я вручную обрабатываю токен запроса из RedirectURL.

  1. step:

    request = OAuthClientRequest.authorizationProvider (OAuthProviderType.GOOGLE) // authorizationProvider (OAuthProviderType.GOOGLE).setState (OAuth.OAUTH_STATE) .setResponseType (OAuth.OAUTH_CODE) .setRedirectURI ("http://localhost:8080") .setClientId (clientId) .setScope (" https://www.googleapis.com/auth/drive") .buildQueryMessage (); * 1011);

  2. Шаг:

    OAuthClientRequest oAuthClientRequest = OAuthClientRequest.tokenProvider (OAuthProviderType.1018 * .setCode (requestCode) .buildBodyMessage ();

Между двумя шагами мне нужно автоматически обработать извлечение кода. Как я могу реализовать в коде этот шаг?

Я не в сервлете, а в портлете.

1 Ответ

0 голосов
/ 28 мая 2019

Вопрос «Как мне реализовать этот шаг в коде?»

Требование «Я не в сервлете, а в портлете».

Ответ :

(1) Для справки я добавляю исходный код в ваш исходный код (используя библиотеки Apache OLTU) для «автоматической обработки извлечения кода авторизации OAuth».

// 1. Step
OAuthClientRequest request = OAuthClientRequest.authorizationProvider(OAuthProviderType.GOOGLE)//authorizationProvider(OAuthProviderType.GOOGLE) .setState(OAuth.OAUTH_STATE) .setResponseType(OAuth.OAUTH_CODE) .setRedirectURI("http://localhost:8080") .setClientId(clientId) .setScope("https://www.googleapis.com/auth/drive") .buildQueryMessage();


// Create the response wrapper
OAuthAuthzResponse oar = null;
oar = OAuthAuthzResponse.oauthCodeAuthzResponse(request);

// Get Authorization Code
String requestCode = oar.getCode();


// 2. Step 
OAuthClientRequest oAuthClientRequest = OAuthClientRequest.tokenProvider(OAuthProviderType.GOOGLE) .setGrantType(GrantType.AUTHORIZATION_CODE) .setClientId(clientId) .setClientSecret(clientSecret) .setRedirectURI("http://localhost:8080") .setCode(requestCode).buildBodyMessage();

(2) Более подробную информацию можно найти в следующем примере кода

"demos / client-demo / src / main / java / org / apache / oltu / oauth2 / client/demo/controller/RedirectController.java "

из Apache Oltu OAuth 2.0 Клиент и поставщик OAuth 2.0 в репозитории GitHub, который является форком Apache Oltu с Запрос на извлечение # 10 для двух новых коммитов «Добавить демоверсию провайдера и README».

Демо-приложение провайдера («demos / provider-demo» из Apache Oltu OAuth 2.0 Client и Provider в репозитории GitHub) позволяетзапустить автономный сервер OAuth 2.0 для тестирования и отладки клиента аутентификации OAuth2 (реализованного вами в портлете).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...