我正在使用OAuth 2.0对Google的API进行身份验证,一切都在我当地的GlassFish中正常运行。 当我部署到DEV的GlassFish时会出现问题,这会引发以下异常:
com.google.api.client.auth.oauth2.TokenResponseException:400错误请求{“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();
如果我从本地运行获取访问令牌,让我们说令牌值为“usghiudblk”,我在DEV的GlasshFish上运行时设置该值:credential.setAcessToken("usghiudblk");
它会让我正常访问但仍然赢了工作:credential.refreshToken();
我真的不知道为什么一切都在本地工作得很好但在DEV的GlassFish中不起作用。
答案 0 :(得分:0)