code:   public void test_unsecuredJWT_validation() throws Exception {
      JWT jwt = new JWT().setSubject("123456789");
      Signer signer = new UnsecuredSigner();
      Verifier hmacVerifier = HMACVerifier.newVerifier("too many secrets");
  
      String encodedUnsecuredJWT = JWTEncoder.getInstance().encode(jwt, signer);
  
      // Ensure that attempting to decode an un-secured JWT fails when we provide a verifier
      expectException(MissingVerifierException.class, () -> JWT.getDecoder().decode(encodedUnsecuredJWT, hmacVerifier));
  
      String encodedUnsecuredJWT_withKid = JWTEncoder.getInstance().encode(jwt, signer, (header) -> header.set("kid", "abc"));
      String encodedUnsecuredJWT_withoutKid = JWTEncoder.getInstance().encode(jwt, signer);
  
      Map<String, Verifier> verifierMap = new HashMap<>();
      verifierMap.put(null, hmacVerifier);
      verifierMap.put("abc", hmacVerifier);
  
      // Ensure that attempting to decode an un-secured JWT fails when we provide a verifier with or without using a kid
      expectException(MissingVerifierException.class, () -> JWT.getDecoder().decode(encodedUnsecuredJWT_withKid, verifierMap));
      expectException(MissingVerifierException.class, () -> JWT.getDecoder().decode(encodedUnsecuredJWT_withoutKid, verifierMap));
    }
  
    @Test
  