Вопрос «Как мне реализовать этот шаг в коде?»
Требование «Я не в сервлете, а в портлете».
Ответ :
(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 (реализованного вами в портлете).