Как я могу настроить клиента Google OAuth2 с помощью HTTPS схемы в Java с помощью?JAVA

Программисты JAVA общаются здесь
Anonymous
 Как я могу настроить клиента Google OAuth2 с помощью HTTPS схемы в Java с помощью?

Сообщение Anonymous »

Я пишу приложение, которое использует API электронных таблиц. Поскольку я использую прицел записи, который является чувствительным, oauth2 urirect URI должен использовать HTTPS вместо HTTP (за исключением случаев, когда используется LocalHost). Как это: < /p>

Код: Выделить всё

@Bean
public Credential credential(@Autowired LocalServerReceiver localServerReceiver) throws GeneralSecurityException, IOException {
HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
// Load client secrets from your credentials JSON file
InputStream credentialsStream = Talespire.class.getResourceAsStream(GOOGLE_SHEETS_CLIENT_SECRET_JSON);
GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(JSON_FACTORY, new InputStreamReader(credentialsStream));
// Set up authorization code flow
GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(
httpTransport, JSON_FACTORY, clientSecrets, SCOPES)
.setDataStoreFactory(new FileDataStoreFactory(new java.io.File("tokens")))
.setAccessType("offline")
.setApprovalPrompt("force")
.build();

return new AuthorizationCodeInstalledApp(flow, localServerReceiver).authorize("user");
}
Внедренный LocalServerReceiver настроен с использованием Builder , который он предоставляет. В своей среде Dev я настроил его, используя Localhost в качестве хоста, который работает нормально, поскольку он не требует HTTP. Однако при переходе в производственную среду невозможно установить хост (который используется для определения URL-адреса обратного вызова) для использования HTTPS-Scheme. Если он установил хост на https://app.comain.com, полученный URL обратного вызова становится http: // https: //app.domain.com/callback , что, очевидно, неверно. Если я хримо попытаюсь вручную изменить параметр redirect-uri в URL-адресах аутентификации (для использования HTTPS вместо HTTP), я получаю ошибку авторизации (

Код: Выделить всё

Error 400: bad_request
) из Google при открытии в браузере. Я подозреваю, что https требуют дополнительных параметров или чего-то еще, но я не могу найти никакой документации об этом. -client/blob/main/google-oauth-client-jetty/src/main/java/com/google/api/client/extensions/jetty/auth/oauth2/localserverreceiver.java) жестко кодируется для использования HTTP-Scheme ( строка 138), поэтому я не вижу встроенного метода, чтобы настроить его с помощью HTTPS-Scheme, как указано.
Кто-нибудь знает, как я могу обойти это? p>
Соответствующие libs /deperiancess
localserverreceiver: Google-OAuth-client-jetty-1.34.1.jar
Googleauthorizatoincodeflow: Google-API-client -1.35.2.jar < Br /> AuthorizationCodeInStalledApp: Google-OAuth-client-java6-1.34.1.jar < /p>
Изменить: во время чтения через этот пост он поражает меня, что, возможно, AuthorizationCodeinStalledApp не является Правильный класс, который можно использовать для создания объекта учетных данных здесь (на основе его имени и того факта, что зависимость использует «Java6» в своем имени). Может ли это иметь место, и что мне нужно использовать другой класс для этого? И если да, то какой из них мне следует использовать?

Подробнее здесь: https://stackoverflow.com/questions/774 ... java-using

Вернуться в «JAVA»