- Notifications
You must be signed in to change notification settings - Fork 279
Closed
Labels
priority: p2Moderately-important priority. Fix may not be included in next release.Moderately-important priority. Fix may not be included in next release.type: bugError or flaw in code with unintended results or allowing sub-optimal usage patterns.Error or flaw in code with unintended results or allowing sub-optimal usage patterns.
Description
Environment details
- Specify the API at the beginning of the title - this is generic, related to OAuth and Jetty.
- OS type and version: MacOS 10.15.1
- Java version: jdk1.8.0_191
- google-oauth-client version(s): 1.30.4
Steps to reproduce
- Upgrade from 1.30.3 to 1.30.4.
- Run the code below - GoogleCredentialHelper.getInstance(someScopes).authorize();
Code example
private static final String CREDENTIAL_FILEPATH = "/credentials/credentials.json"; private static final java.io.File DATA_STORE_DIR = new java.io.File( System.getProperty("user.home"), ".credentials/template"); private FileDataStoreFactory dataStoreFactory; private final JsonFactory jsonFactory; private HttpTransport httpTransport; private List<String> scopes; private GoogleCredentialHelper(List<String> scopes) { this.jsonFactory = JacksonFactory.getDefaultInstance(); try { this.httpTransport = GoogleNetHttpTransport.newTrustedTransport(); this.dataStoreFactory = new FileDataStoreFactory(DATA_STORE_DIR); this.scopes = scopes; } catch (Exception e) { e.printStackTrace(); System.exit(-1); } } private Credential authorize() throws IOException { InputStream in = GoogleCredentialHelper.class.getResourceAsStream(CREDENTIAL_FILEPATH); GoogleClientSecrets clientSecrets = GoogleClientSecrets.load( jsonFactory, new InputStreamReader(in) ); GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder( httpTransport, jsonFactory, clientSecrets, scopes) .setDataStoreFactory(dataStoreFactory) .setAccessType("offline") .build(); Credential credential = new AuthorizationCodeInstalledApp( flow, new LocalServerReceiver()).authorize("user"); return credential; } public static GoogleCredentialHelper getInstance(List<String> scopes) { if (instance == null) { instance = new GoogleCredentialHelper(scopes); } return instance; }Stack trace
java.lang.NoSuchMethodError: org.eclipse.jetty.server.Connector.setHost(Ljava/lang/String;)V at com.google.api.client.extensions.jetty.auth.oauth2.LocalServerReceiver.getRedirectUri(LocalServerReceiver.java:120) at com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp.authorize(AuthorizationCodeInstalledApp.java:121) at com.project.gapps.GoogleCredentialHelper.authorize(GoogleCredentialHelper.java:68) Any additional information below
The issue appeared after upgrading from 1.30.3 to 1.30.4. Most likely related to the upgrade of Jetty to 8.2 in the latest version.
<dependency> <groupId>com.google.oauth-client</groupId> <artifactId>google-oauth-client-jetty</artifactId> <version>1.30.4</version> </dependency> The exception appears when credentials are not saved yet - user has to grant permissions via browser.
knoppixmeister, karendolan, YuanWenqing, boris-petrov, MarsYoung and 2 more
Metadata
Metadata
Assignees
Labels
priority: p2Moderately-important priority. Fix may not be included in next release.Moderately-important priority. Fix may not be included in next release.type: bugError or flaw in code with unintended results or allowing sub-optimal usage patterns.Error or flaw in code with unintended results or allowing sub-optimal usage patterns.