/** * Add validator of issuer to the collection of validators. * * @param validators collection of validators * @param issuer issuer expected to be in the token * @param mandatory whether issuer field is mandatory in the token (true - mandatory, false - optional) */ public static void addIssuerValidator(Collection<Validator<Jwt>> validators, String issuer, boolean mandatory) { validators.add(FieldValidator.create(Jwt::issuer, "Issuer", issuer, mandatory)); }
/** * A payload field validator. * * @param fieldKey name of the payload claim * @param name descriptive name of the field * @param expectedValue value to expect * @param mandatory whether the field is mandatory or optional * @return validator instance */ public static FieldValidator createForPayload(String fieldKey, String name, String expectedValue, boolean mandatory) { return create(jwt -> jwt.payloadClaim(fieldKey) .map(it -> ((JsonString) it).getString()), name, expectedValue, false); }
/** * A header field validator. * * @param fieldKey name of the header claim * @param name descriptive name of the field * @param expectedValue value to expect * @param mandatory whether the field is mandatory or optional * @return validator instance */ public static FieldValidator createForHeader(String fieldKey, String name, String expectedValue, boolean mandatory) { return create(jwt -> jwt.headerClaim(fieldKey) .map(it -> ((JsonString) it).getString()), name, expectedValue, mandatory); }
/** * A header field validator. * * @param fieldKey name of the header claim * @param name descriptive name of the field * @param expectedValue value to expect * @param mandatory whether the field is mandatory or optional * @return validator instance */ public static FieldValidator createForHeader(String fieldKey, String name, String expectedValue, boolean mandatory) { return create(jwt -> jwt.headerClaim(fieldKey) .map(it -> ((JsonString) it).getString()), name, expectedValue, mandatory); }
/** * A payload field validator. * * @param fieldKey name of the payload claim * @param name descriptive name of the field * @param expectedValue value to expect * @param mandatory whether the field is mandatory or optional * @return validator instance */ public static FieldValidator createForPayload(String fieldKey, String name, String expectedValue, boolean mandatory) { return create(jwt -> jwt.payloadClaim(fieldKey) .map(it -> ((JsonString) it).getString()), name, expectedValue, false); }
/** * A generic optional field validator based on a function to get the field. * * @param fieldAccessor function to extract field from JWT * @param name descriptive name of the field * @param expectedValue value to expect * @return validator instance */ public static FieldValidator create(Function<Jwt, Optional<String>> fieldAccessor, String name, String expectedValue) { return create(fieldAccessor, name, expectedValue, false); }
/** * Add validator of issuer to the collection of validators. * * @param validators collection of validators * @param issuer issuer expected to be in the token * @param mandatory whether issuer field is mandatory in the token (true - mandatory, false - optional) */ public static void addIssuerValidator(Collection<Validator<Jwt>> validators, String issuer, boolean mandatory) { validators.add(FieldValidator.create(Jwt::issuer, "Issuer", issuer, mandatory)); }
/** * A generic optional field validator based on a function to get the field. * * @param fieldAccessor function to extract field from JWT * @param name descriptive name of the field * @param expectedValue value to expect * @return validator instance */ public static FieldValidator create(Function<Jwt, Optional<String>> fieldAccessor, String name, String expectedValue) { return create(fieldAccessor, name, expectedValue, false); }