code: protected boolean validateSignature(SignedJWT jwtToken) {
          boolean valid = false;
          if (JWSObject.State.SIGNED == jwtToken.getState()) {
              if (LOG.isDebugEnabled()) {
                  LOG.debug("SSO token is in a SIGNED state");
              }
              if (jwtToken.getSignature() != null) {
                  if (LOG.isDebugEnabled()) {
                      LOG.debug("SSO token signature is not null");
                  }
                  try {
                      if (verifier != null && jwtToken.verify(verifier)) {
                          valid = true;
                          if (LOG.isDebugEnabled()) {
                              LOG.debug("SSO token has been successfully verified");
                          }
                      } else {
                          LOG.warn("SSO signature verification failed.Please check the public key");
                      }
                  } catch (JOSEException je) {
                      LOG.warn("Error while validating signature", je);
                  } catch (Exception e) {
                      LOG.warn("Error while validating signature", e);
                  }
              }
          }
          return valid;
      }
docs: Verify the signature of the JWT token in this method. This method depends
  on the public key that was established during init based upon the
  provisioned public key. Override this method in subclasses in order to
  customize the signature verification behavior.
  
  @param jwtToken the token that contains the signature to be validated
  @return valid true if signature verifies successfully; false otherwise