小编use*_*724的帖子

Google OAuth2 JWT令牌验证例外

我最后一小时面临OAuth2 JWT令牌验证异常(所以没有人可以访问我的应用程序):

java.security.SignatureException:签名长度不正确:得到256但是期望128.我正在使用google-http-client 1.20.0Java 1.7.0.到目前为止相同的配置 - 任何想法?

Stacktrace

java.security.SignatureException: Signature length not correct: got 256 but was expecting 128
    at sun.security.rsa.RSASignature.engineVerify(Unknown Source) ~[na:1.7.0_45]
    at java.security.Signature$Delegate.engineVerify(Unknown Source) ~[na:1.7.0_45]
    at java.security.Signature.verify(Unknown Source) ~[na:1.7.0_45]
    at com.google.api.client.util.SecurityUtils.verify(SecurityUtils.java:164) ~[google-http-client-1.20.0.jar:1.20.0]
Run Code Online (Sandbox Code Playgroud)

java jwt google-http-client java-security

21
推荐指数
2
解决办法
4218
查看次数

Google推送通知 - 未经授权的WebHook回调频道

我遇到谷歌推送通知(驱动器)的问题.我使用的服务帐户非常适用于所有其他驱动器操作,除了驱动器更改监视.

以下是现在因"未授权的WebHook回调通道"异常而失败的应用程序代码.我还转储了调用drive.changes.watch.execute时生成的请求和响应.

目标通知地址在API和auth推送控制面板中列入白名单(我甚至​​将其列在Javascript起源和引用中),现在我遇到了这个401 Unauthorized错误.

有人知道我在哪里弄错了吗?谢谢你的帮助.

PrivateKey serviceAccountPrivateKey = SecurityUtils.loadPrivateKeyFromKeyStore(SecurityUtils.getPkcs12KeyStore(), p12File, "notasecret", "privatekey", "notasecret");
JsonFactory jsonFactory = new JacksonFactory();
HttpTransport t = GoogleNetHttpTransport.newTrustedTransport();
GoogleCredential gc = new GoogleCredential.Builder()
                .setTransport(t)
                .setJsonFactory(jsonFactory)
                .setServiceAccountScopes(Collections.singleton(DriveScopes.DRIVE))
                .setServiceAccountPrivateKey(serviceAccountPrivateKey)
                .setServiceAccountId(Config.SERVICE_ACCOUNT_ID)
                .setServiceAccountUser(Config.SERVICE_ACCOUNT_USER)
                .build();

drive = new Drive.Builder(t, jsonFactory, null).setHttpRequestInitializer(gc).setApplicationName(cfg.getStringParam(Config.GAE_APPLICATION_NAME)).build();

// THIS WORKS
Changes.List request = drive.changes().list();
ChangeList changes = request.execute();

// THIS DOES NOT WORK
Channel channel = new Channel();
channel.setId(UUID.randomUUID().toString());
channel.setType("web_hook");
channel.setAddress(Config.PUSH_NOTIFICATION_ADDRESS);
Channel c = drive.changes().watch(channel).execute();


-------------- REQUEST  --------------
POST https://www.googleapis.com/drive/v2/changes/watch
Accept-Encoding: gzip
Authorization: Bearer XXX
User-Agent: XXX …
Run Code Online (Sandbox Code Playgroud)

java google-api google-api-java-client google-drive-api

13
推荐指数
2
解决办法
9009
查看次数

Google Marketplace许可证api突然无效

从大约5:30 UTC开始,我们只收到此api呼叫的响应

https://www.googleapis.com/appsmarket/v2/customerLicense/ {appId}/{customer}

{"error":{"errors":[{"domain":"global","reason":"forbidden","message":"未授权访问应用程序ID"}],"code":403, "message":"未授权访问应用程序ID"}}

但是我们之前没有任何先前的发展或变化,这会影响我们所有的市场应用.

有什么想法,以及如何解决/解决这个问题?

google-api google-apps-marketplace google-oauth2

8
推荐指数
1
解决办法
344
查看次数