DEVs GlassFish中的Google API异常“invalid_grant”,但不在本地

时间:2015-05-19 14:19:16

标签: java oauth google-api glassfish

我正在使用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中不起作用。

1 个答案:

答案 0 :(得分:0)

通过这篇文章的答案解决了这个问题:

Invalid grant when accessing Google API

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

就是这样......