示例#1
0
 private static Either <IEnumerable <ReleaseStatusLogMessage>, Unit> Failure(ValidationStage stage, string message)
 {
     return(new List <ReleaseStatusLogMessage>
     {
         new ReleaseStatusLogMessage($"Validating {stage.ToString()}: {message}")
     });
 }
        public virtual ValidationResult ValidateRule(SecretValidationRule rule, ValidationStage stage)
        {
            var validator = _context.SecretValidationRuleProcessors.FirstOrDefault(q => q.Name == rule.Validator);

            if (validator == null)
            {
                throw new Exception($"Validation rule type {rule.Validator} not registered");
            }

            if (stage == ValidationStage.AfterGet && validator.ValidationStage != stage)
            {
                return(ValidationResult.SuccessResult);
            }

            return(validator.Validate(_secretContext, rule.ValidationData, _principal));
        }
        public virtual ValidationResult Validate(SecretDecryptionContext secretContext, ClaimsPrincipal principal, ValidationStage stage)
        {
            _secretContext = secretContext;
            _principal     = principal;

            foreach (var rule in _secretContext.Secret.SecretValidationRules)
            {
                var result = ValidateRule(rule, stage);
                if (!result.IsValid)
                {
                    return(result);
                }
            }
            return(ValidationResult.SuccessResult);
        }
 public virtual ValidationResult ValidateSecret(ValidationStage stage)
 {
     return(_secretValidator.Validate(this, Principal, stage));
 }