एक ही समस्या यहाँ, मैं अपने प्रोजेक्ट के लिए GoogleIdTokenVerifier के स्रोत कोड जोड़ा गया है और तरीके को बदल दिया:
public boolean verify(GoogleIdToken googleIdToken) throws GeneralSecurityException, IOException {
// check the payload
if (!super.verify(googleIdToken)) {
return false;
}
// verify signature
for (PublicKey publicKey : publicKeys.getPublicKeys()) {
try {
if (googleIdToken.verifySignature(publicKey)) {
return true;
}
} catch (Exception e) {
System.err.println("Verify Token:" + e);
}
}
return false;
}
सिर्फ अपवाद संभाल, दूसरा प्रमाण पत्र ठीक काम करता है।
संपादित करें:
संपादित करें 2:: मैं, यह नीचे दिए गए कोड का उपयोग कर काम नहीं कर सकते हैं मैं ऊपर बदसूरत हैक करने के लिए छड़ी के रूप में Erik-z सुझाव अगर आप इसे और अधिक स्वच्छ बनाना चाहते आप उपवर्ग कर सकते हैं।
package com.my.project.package;
import java.io.IOException;
import java.security.GeneralSecurityException;
import java.security.PublicKey;
import com.google.api.client.auth.openidconnect.IdTokenVerifier;
import com.google.api.client.googleapis.auth.oauth2.GoogleIdToken;
import com.google.api.client.googleapis.auth.oauth2.GoogleIdTokenVerifier;
import com.google.api.client.http.HttpTransport;
import com.google.api.client.json.JsonFactory;
// Remember to remove this class later by making it deprecated
@Deprecated
public class GoogleIdTokenVerifier2 extends GoogleIdTokenVerifier {
// Add constructors as needed
public GoogleIdTokenVerifier2(HttpTransport transport, JsonFactory jsonFactory) {
super(transport, jsonFactory);
}
@Override
public boolean verify(GoogleIdToken googleIdToken) throws GeneralSecurityException, IOException {
// check the payload
if (!((IdTokenVerifier)this).verify(googleIdToken)) {
return false;
}
// verify signature
for (PublicKey publicKey : getPublicKeysManager().getPublicKeys()) {
try {
if (googleIdToken.verifySignature(publicKey)) {
return true;
}
} catch (Exception e) {
System.err.println("Verify Token:" + e);
}
}
return false;
}
}
जावा 1.8.0_45 का उपयोग करने के साथ ही वही समस्या। – brunnsbe
मैं Google खाता प्रबंधक खाते से एक्सेस टोकन का उपयोग करते समय इसे Google ऐप इंजन पर प्राप्त कर रहा हूं। (बस एक घंटे पहले उन्हें प्राप्त करना शुरू किया) –
@ user3686724 GoogleIdTokenVerifier के लिए आपने जो ऑडियंस सेट किया है वह क्या है? क्या आप क्लाइंट आईडी या टोकन आईडी का उपयोग करते हैं? (हम पिछले 60 मिनट के लिए एक ही समस्या का सामना कर रहे हैं) – orrsella