Google API 异常 "invalid_grant" 在 DEVs GlassFish 中但在 Local 中没有

Google API Exception "invalid_grant" in DEVs GlassFish but not in Local

我正在使用 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();

如果我从我的本地 运行 获取访问令牌,假设令牌值为 "usghiudblk",并且我在 DEV 的 GlasshFish 上 运行 设置该值:credential.setAcessToken("usghiudblk"); 它可以让我正常访问,但这仍然行不通:credential.refreshToken();

我真的搞不懂为什么在本地一切正常,但在 DEV 的 GlassFish 中却不行。

通过这个 post 的答案解决了它:

Invalid grant when accessing Google API

问题是服务器的时钟与 NTP 不同步。

就是这样...