Wie kann ich einen Google OAuth2 -Client mithilfe des HTTPS -Schemas in Java einrichten?Java

Java-Forum
Guest
 Wie kann ich einen Google OAuth2 -Client mithilfe des HTTPS -Schemas in Java einrichten?

Post by Guest »

Ich schreibe eine Anwendung, die die Tabellenkalkulations -API verwendet. Da ich das sensible Schreibbereich verwende, muss die OAUTH2 -Umleitung URI HTTPS anstelle von HTTP verwenden (außer bei Verwendung von Localhost). Wie dieses: < /p>

Code: Select all

@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");
}
Der injizierte LocalerverReceiver wird mit dem Builder eingerichtet. In meiner Entwicklerumgebung habe ich es mit Localhost als Host eingerichtet, was gut funktioniert, da es keine HTTP erfordert. Wenn Sie jedoch in die Produktionsumgebung wechseln, gibt es jedoch keine Möglichkeit, den Host (mit dem die Callback-URL festgelegt wird) für die Verwendung von HTTPS-Scheme festgelegt. Wenn der Host auf https://app.comain.com festgelegt wird, wird die resultierende Callback -URL http: // https: //app.domain.com/callback , was offensichtlich falsch ist. Wenn ich kurz versuche, den Parameter Redirect-URI in der Authentifizierungs-URL (HTTPS anstelle von HTTP) manuell zu ändern (um HTTPS zu verwenden), erhalte ich eine Autorisierungsreform (Error ()

Code: Select all

Error 400: bad_request
) von Google beim Öffnen im Browser. Ich vermute, dass HTTPS zusätzliche Parameter oder etwas anderes benötigt, aber ich kann keine Dokumentation darüber finden. -Client/BLOB/Main/Google-Oauth-Client-Jetty/src/main/java/com/google/api/client/extensions/jetty/auth/oAuth2/localServerreceiver.java) ist hartcodiert, um das HTTP-Scheme (( Zeile 138), daher sehe ich keine integrierte Methode, um diese mit dem HTTPS-Scheme einzustellen, wie angegeben. p>
Relevante libs /Abhängigkeiten
LOCALERVERRECEIVER: Google-Oauth-Client-Jetty-1.34.1.jar
GoogleAuthorizoCoCodeFlow: Google-api-Client-1.35.2 < BR /> AuthorizationCododeinstalledApp: Google-Oauth-Client-Java6-1.34.1.jar < /p>
Bearbeiten: Während des Durchlesens diesen Beitrag trifft es mir, dass der AutorizationCodeinstalledApp nicht das ist Richtige Klasse, um das Anmeldeinformationsobjekt hier zu generieren (basierend auf ihrem Namen und der Tatsache, dass die Abhängigkeit in ihrem Namen "Java6" verwendet). Könnte dies der Fall sein und dass ich dafür eine andere Klasse verwenden muss? Und wenn ja, welches soll ich verwenden?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post