Die Google OAuth-Autorisierung bleibt nach der Annahme der Einwilligung hängenJava

Java-Forum
Anonymous
 Die Google OAuth-Autorisierung bleibt nach der Annahme der Einwilligung hängen

Post by Anonymous »

Ich habe eine App, die die Verarbeitung nicht fortsetzt, nachdem ich den gewünschten API-Bereichen zugestimmt habe. Mein Prozess ist wie folgt:
Die App ist eine Java-Web-App, die auf Tomcat 10.1 läuft. Es handelt sich um eine interne Einzelbenutzer-App, mit der ich meinen Kalender lesen und schreiben sowie meine Google-Tabellen auflisten, lesen und schreiben möchte. Da ich auf meinen persönlichen Kalender und meine persönlichen Blätter zugreife, ist die Verwendung eines Dienstkontos ausgeschlossen. Ich verwende also eine OAuth 2-Client-ID.
Meine App führt den folgenden Code aus:

Code: Select all

if ( credential == null ) {
final NetHttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
final JsonFactory JSON_FACTORY = GsonFactory.getDefaultInstance();

GoogleClientSecrets clientSecrets = GoogleClientSecrets.load( JSON_FACTORY , new StringReader( credentialsString ) );

File tokenDirectory = new java.io.File( tokensDirectoryPath );
LOGGER.debug( String.format( "Token directory: %s" , tokenDirectory.getAbsolutePath() ) );

// Build flow and trigger user authorization request.
GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(
httpTransport , JSON_FACTORY , clientSecrets , Constants.SCOPES )
.setDataStoreFactory( new FileDataStoreFactory( new java.io.File( tokensDirectoryPath ) ) )
.setAccessType( "offline" )
.setApprovalPrompt( "force" )
.build();

LocalServerReceiver receiver = new LocalServerReceiver.Builder().setPort( 8081 ).build();
credential = new AuthorizationCodeInstalledApp( flow , receiver ).authorize( "user" );
}
Dadurch wird eine Meldung protokolliert, die besagt, dass ich die folgende Adresse in meinem Browser öffnen muss:

Code: Select all

https://accounts.google.com/o/oauth2/auth?access_type=offline&approval_prompt=force&client_id=xxxx&redirect_uri=http://localhost:8081/Callback&response_type=code&scope=https://www.googleapis.com/auth/calendar%20https://www.googleapis.com/auth/drive.readonly%20https://www.googleapis.com/auth/spreadsheets
Ich kopiere das in meinen Browser, melde mich an und stimme zu.
Ich erhalte einen URI zurück, der so aussieht:

Code: Select all

http://localhost:8081/Callback?code=xxxxxxxxxxxxxxxxxx&scope=https://www.googleapis.com/auth/spreadsheets%20https://www.googleapis.com/auth/drive.readonly%20https://www.googleapis.com/auth/calendar
An diesem Punkt bin ich verloren. Die Webseite dreht sich einfach nur da und wartet darauf, dass etwas passiert, was nie passiert. Ich habe die Firewall deaktiviert, weil ich dachte, dass die Antwort möglicherweise blockiert wurde. Das machte keinen Unterschied. Ein sudo netstat -tulpn zeigt, dass meine Java-App Port 8081 überwacht.
Sieht irgendjemand, was ich falsch mache?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post