docs: public JwtBuilder claim(String name, Object value)
              throws InvalidClaimException {
          //        if (isValidClaim(name, value)) {
          //            if (name.equals(Claims.AUDIENCE)) {
          //                if (value instanceof ArrayList) {
          //                    this.audience((ArrayList) value);
          //                } else if (value instanceof String) {
          //                    String[] auds = ((String) value).split(" ");
          //                    ArrayList<String> audList = new ArrayList<String>();
          //                    for (String aud : auds) {
          //                        if (!aud.isEmpty()) {
          //                            audList.add(aud.trim());
          //                        }
          //                    }
          //                    if (!audList.isEmpty()) {
          //                        this.audience(audList);
          //                    }
          //                } else {
          //                    String msg = Tr.formatMessage(tc,
          //                            "JWT_INVALID_CLAIM_VALUE_TYPE",
          //                            new Object[] { Claims.AUDIENCE });
          //                    throw new InvalidClaimException(msg);
          //                }
          //            } else if (name.equals(Claims.EXPIRATION)) {
          //                if (value instanceof Long) {
          //                    this.expirationTime((Long) value);
          //                } else if (value instanceof Integer) {
          //                    this.expirationTime(((Integer) value).longValue());
          //                } else {
          //                    String msg = Tr.formatMessage(tc,
          //                            "JWT_INVALID_CLAIM_VALUE_TYPE",
          //                            new Object[] { Claims.EXPIRATION });
          //                    throw new InvalidClaimException(msg);
          //                }
          //            } else if (name.equals(Claims.ISSUED_AT)) {
          //                if (value instanceof Long) {
          //                    this.issueTime((Long) value);
          //                } else if (value instanceof Integer) {
          //                    this.expirationTime(((Integer) value).longValue());
          //                } else {
          //                    String msg = Tr.formatMessage(tc,
          //                            "JWT_INVALID_CLAIM_VALUE_TYPE",
          //                            new Object[] { Claims.ISSUED_AT });
          //                    throw new InvalidClaimException(msg);
          //                }
          //            } else if (name.equals(Claims.NOT_BEFORE)) {
          //                if (value instanceof Long) {
          //                    this.notBefore((Long) value);
          //                } else if (value instanceof Integer) {
          //                    this.expirationTime(((Integer) value).longValue());
          //                } else {
          //                    String msg = Tr.formatMessage(tc,
          //                            "JWT_INVALID_CLAIM_VALUE_TYPE",
          //                            new Object[] { Claims.NOT_BEFORE });
          //                    throw new InvalidClaimException(msg);
          //                }
          //            } else if (name.equals(Claims.ISSUER) || name.equals(Claims.SUBJECT)) {
          //                if (value instanceof String) {
          //                    if (name.equals(Claims.ISSUER)) {
          //                        this.issuer((String) value);
          //                    } else {
          //                        this.subject((String) value);
          //                    }
          //                } else {
          //                    String msg = Tr.formatMessage(tc, "JWT_INVALID_CLAIM_VALUE_TYPE", new Object[] { name });
          //                    throw new InvalidClaimException(msg);
          //                }
          //            } else {
          //                claims.put(name, value);
          //            }
          //        }
          builder = builder.claim(name, value);
          return this;
      }