JWTAlgorithmRule extends ConstantsRule
Rule: Validates that a given value is a supported JSON Web Token (JWT) signing algorithm as defined in {@see JWTAlgorithm}.
Usage
This rule ensures that the provided value matches one of the allowed JWT signing algorithms, typically one of:
HS256, HS384, HS512, RS256, RS384, RS512, PS256, PS384, PS512, none
Examples
use oihana\validations\rules\JWTAlgorithmRule;
use Somnambulist\Components\Validation\Validator;
$rule = new JWTAlgorithmRule() ;
$validator = new Validator(
['alg' => 'HS256'],
['alg' => [ $rule ]]
);
$validator->passes(); // true
$validator = new Validator(
['alg' => 'MD5'],
['alg' => [$rule]]
);
$validator->fails(); // true — "alg is not a valid JWT signing algorithm."
Customization
You can restrict validation to a subset of algorithms:
$rule = new JWTAlgorithmRule(['HS256', 'RS256']);
$rule->check('RS512'); // false
Tags
Table of Contents
Constants
- CASES = 'cases'
- The parameter key used to store the valid constants list.
- CLASS_NAME = 'className'
- The parameter key for the constants class name.
Properties
- $cases : array<string|int, mixed>
- The list of valid constant values used by this rule.
- $fillableParams : array<string|int, string>
- The parameters that must be present for the rule to function.
- $message : string
- The internal message pattern.
Methods
- __construct() : mixed
- Creates a new JWTAlgorithmRule instance.
- cases() : static
- Sets or overrides the list of valid constant values.
- check() : bool
- Checks if the given value is one of the allowed constant values.
- className() : static
- Sets the class name that provides the constants.
Constants
CASES
The parameter key used to store the valid constants list.
public
mixed
CASES
= 'cases'
CLASS_NAME
The parameter key for the constants class name.
public
mixed
CLASS_NAME
= 'className'
Properties
$cases
The list of valid constant values used by this rule.
protected
array<string|int, mixed>
$cases
= []
$fillableParams
The parameters that must be present for the rule to function.
protected
array<string|int, string>
$fillableParams
= [self::CLASS_NAME, self::CASES]
$message
The internal message pattern.
protected
string
$message
= ":attribute is not a valid JWT signing algorithm."
Methods
__construct()
Creates a new JWTAlgorithmRule instance.
public
__construct([array<string|int, string>|null $cases = null ]) : mixed
Parameters
- $cases : array<string|int, string>|null = null
-
Optional list of allowed algorithms. Defaults to all algorithms from JWTAlgorithm::enums().
Tags
cases()
Sets or overrides the list of valid constant values.
public
cases([array<string|int, mixed>|null $cases = null ]) : static
If $cases is null or empty, it defaults to all enums from the class.
Parameters
- $cases : array<string|int, mixed>|null = null
-
The constant values to allow in this rule.
Tags
Return values
staticcheck()
Checks if the given value is one of the allowed constant values.
public
check(mixed $value) : bool
Parameters
- $value : mixed
-
The value to validate.
Tags
Return values
bool —True if the value is a valid algorithm, false otherwise.
className()
Sets the class name that provides the constants.
public
className(ConstantsTrait> $className) : static
Parameters
- $className : ConstantsTrait>
-
The fully qualified class name.