Class: WSDL::Security::Verifier::Base Abstract

Inherits:
Object
  • Object
show all
Defined in:
lib/wsdl/security/verifier/base.rb

Overview

This class is abstract.

Subclass and implement #valid? to create a validator.

Base class for verifier components providing shared functionality.

All verifier components inherit from this class to get:

  • Error collection and reporting
  • XML namespace constants
  • Common validation patterns

Examples:

Creating a custom validator

class MyValidator < Verifier::Base
  def initialize(document)
    super()
    @document = document
  end

  def valid?
    return add_failure('Something is wrong') unless check_something
    true
  end
end

Constant Summary collapse

SecurityNS =

Local aliases for namespace constants

Constants::NS::Security
SignatureNS =

Alias for XML Signature namespace constants.

Returns:

  • (Module)
Constants::NS::Signature
SOAPNS =

Alias for SOAP namespace constants.

Returns:

  • (Module)
Constants::NS::SOAP
SOAP_NAMESPACES =

SOAP namespace URIs for both versions.

[SOAPNS::V1_1, SOAPNS::V1_2].freeze
VALID_ID_PATTERN =

Pattern for valid XML element IDs (NCName production). This prevents XPath injection by rejecting IDs containing quotes, brackets, operators, or other characters that could alter XPath semantics.

Used by the Verifier and all sub-validators as the canonical validation pattern for element IDs before interpolation into XPath expressions.

Returns:

  • (Regexp)

See Also:

/\A[a-zA-Z_][a-zA-Z0-9_.-]*\z/

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeBase

Creates a new validator instance.



60
61
62
# File 'lib/wsdl/security/verifier/base.rb', line 60

def initialize
  @errors = []
end

Instance Attribute Details

#errorsArray<String> (readonly)

Returns errors encountered during validation.

Returns:

  • (Array<String>)

    errors encountered during validation



57
58
59
# File 'lib/wsdl/security/verifier/base.rb', line 57

def errors
  @errors
end

Instance Method Details

#valid?Boolean

This method is abstract.

Subclasses must implement this method.

Returns whether the validation passed.

Returns:

  • (Boolean)

    true if validation passed

Raises:

  • (NotImplementedError)


68
69
70
# File 'lib/wsdl/security/verifier/base.rb', line 68

def valid?
  raise NotImplementedError, "#{self.class} must implement #valid?"
end