【发布时间】:2015-05-19 14:19:16
【问题描述】:
我正在使用 OAuth 2.0 对 Google 的 API 进行身份验证,并且在我的本地 GlassFish 中一切正常。 当我部署到 DEV 的 GlassFish 时,问题就开始了,这引发了以下异常:
com.google.api.client.auth.oauth2.TokenResponseException: 400 Bad Request { "error" : "invalid_grant" }
这是我的代码:
transport = GoogleNetHttpTransport.newTrustedTransport();
jsonFactory = JacksonFactory.getDefaultInstance();
credential = new GoogleCredential.Builder()
.setTransport(transport)
.setJsonFactory(jsonFactory)
.setServiceAccountUser(googleAdminEmail)
.setServiceAccountId(googleAdminAccount)
.setServiceAccountScopes(Arrays.asList(
DirectoryScopes.ADMIN_DIRECTORY_USER,
DirectoryScopes.ADMIN_DIRECTORY_GROUP,
DirectoryScopes.ADMIN_DIRECTORY_GROUP_MEMBER))
.setServiceAccountPrivateKeyFromP12File(new File(googleAdminKeyPath))
.build();
credential.refreshToken();
引发异常的确切行是:
credential.refreshToken();
如果我从本地运行中获取访问令牌,假设令牌值为“usghuidblk”,并且我在 DEV 的 GlasshFish 上运行时设置了该值:credential.setAcessToken("usghiudblk"); 它会让我正常访问,但这仍然不会工作:credential.refreshToken();
我真的不知道为什么在本地一切正常,但在 DEV 的 GlassFish 中却不行。
【问题讨论】:
-
用户给了你多少次刷新令牌?
标签: java oauth google-api glassfish