2

I am trying to validate a JWT Token sent by Google to my application . I am using the below code to validate the JWT token but verifier.verify(token) always returns null even if the token is valid. I have tested the token in another NodeJS code i have and it works fine in NodeJS but in the below java code i am not able to validate the token . Any help in letting me know why verifier.verify(token) returns null is appreciated.

public static boolean isRequestFromGoogle(String audience, String token) {

    
         //HttpTransport httpTransport = checkNotNull(Utils.getDefaultTransport());
         //JsonFactory jsonFactory = checkNotNull(Utils.getDefaultJsonFactory());
         
         HttpTransport httpTransport = new NetHttpTransport();
            JsonFactory jsonFactory = new JacksonFactory();
        GoogleIdTokenVerifier verifier = new GoogleIdTokenVerifier.Builder(httpTransport,
                jsonFactory).setAudience(Collections.singletonList(audience)).build();

        try {
            System.out.println("token is " + token);
            System.out.println("verifier is " + verifier.toString());
            GoogleIdToken idToken = verifier.verify(token);
            if (idToken == null) {
                System.out.println("idToken is null");
                return false;
            }
            Payload payload = idToken.getPayload();
            String issuer = (String) payload.get("iss");
            String proj = (String) payload.get("aud");
            System.out.println("Issuer is" + issuer);
            System.out.println("Project is" + proj);

            return issuer.equals("https://accounts.google.com");
        } catch (GeneralSecurityException e) {
            
            e.printStackTrace();
        } catch (IOException e) {
            
            e.printStackTrace();
        }
        catch (Exception e) {
            e.printStackTrace();
        }

        return false;

    }
vignesh d
  • 235
  • 3
  • 6
  • 15

0 Answers0