The ESAPI Validator component uses the various Encoder.canonicalize methods, which creates a tight coupling between the Validator and Encoder. We want to avoid that for ESAPI 3, therefore I am proposing to create a lightweight Canonicalizer component and move the Encoder.canonicalize methods to it. That should minimize dependencies for the Validator. ESAPI 3, since it is a major change and thus is permitted to break interfaces, would be a good time to do that.
The ESAPI
Validatorcomponent uses the variousEncoder.canonicalizemethods, which creates a tight coupling between theValidatorandEncoder. We want to avoid that for ESAPI 3, therefore I am proposing to create a lightweightCanonicalizercomponent and move theEncoder.canonicalizemethods to it. That should minimize dependencies for theValidator. ESAPI 3, since it is a major change and thus is permitted to break interfaces, would be a good time to do that.