Class: WSDL::Security::ResponseVerification::Options

Inherits:
Data
  • Object
show all
Defined in:
lib/wsdl/security/response_verification.rb

Overview

Immutable configuration for response signature and timestamp verification.

This Data class encapsulates all options needed to verify signed SOAP responses, organized into logical groups for certificate and timestamp verification.

Examples:

Using defaults

verification = ResponseVerification::Options.default

Creating from Security::Config

verification = ResponseVerification::Options.from_config(security_config)

Custom configuration

verification = ResponseVerification::Options.new(
  certificate: ResponseVerification::Certificate.new(
    trust_store: :system,
    verify_not_expired: true
  ),
  timestamp: ResponseVerification::Timestamp.new(
    validate: true,
    tolerance_seconds: 600
  )
)

Accessing nested options

verification.certificate.trust_store        # => :system
verification.certificate.verify_not_expired # => true
verification.timestamp.validate             # => true
verification.timestamp.tolerance_seconds    # => 300

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Attribute Details

#certificateObject (readonly)

Returns the value of attribute certificate

Returns:

  • (Object)

    the current value of certificate



96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
# File 'lib/wsdl/security/response_verification.rb', line 96

Options = Data.define(:certificate, :timestamp) {
  # Returns default response verification options.
  #
  # @return [Options] defaults for both certificate and timestamp
  #
  def self.default
    new(certificate: Certificate.default, timestamp: Timestamp.default)
  end

  # Creates verification options from a Security::Config instance.
  #
  # @param config [Security::Config] the security configuration
  # @return [Options] verification options extracted from config
  #
  def self.from_config(config)
    return config.response_verification_options if config.respond_to?(:response_verification_options)

    new(
      certificate: Certificate.new(
        trust_store: config.verification_trust_store,
        verify_not_expired: config.check_certificate_validity
      ),
      timestamp: Timestamp.new(
        validate: config.validate_timestamp,
        tolerance_seconds: config.clock_skew
      )
    )
  end
}

#timestampObject (readonly)

Returns the value of attribute timestamp

Returns:

  • (Object)

    the current value of timestamp



96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
# File 'lib/wsdl/security/response_verification.rb', line 96

Options = Data.define(:certificate, :timestamp) {
  # Returns default response verification options.
  #
  # @return [Options] defaults for both certificate and timestamp
  #
  def self.default
    new(certificate: Certificate.default, timestamp: Timestamp.default)
  end

  # Creates verification options from a Security::Config instance.
  #
  # @param config [Security::Config] the security configuration
  # @return [Options] verification options extracted from config
  #
  def self.from_config(config)
    return config.response_verification_options if config.respond_to?(:response_verification_options)

    new(
      certificate: Certificate.new(
        trust_store: config.verification_trust_store,
        verify_not_expired: config.check_certificate_validity
      ),
      timestamp: Timestamp.new(
        validate: config.validate_timestamp,
        tolerance_seconds: config.clock_skew
      )
    )
  end
}

Class Method Details

.defaultOptions

Returns default response verification options.

Returns:

  • (Options)

    defaults for both certificate and timestamp



101
102
103
# File 'lib/wsdl/security/response_verification.rb', line 101

def self.default
  new(certificate: Certificate.default, timestamp: Timestamp.default)
end

.from_config(config) ⇒ Options

Creates verification options from a Security::Config instance.

Parameters:

Returns:

  • (Options)

    verification options extracted from config



110
111
112
113
114
115
116
117
118
119
120
121
122
123
# File 'lib/wsdl/security/response_verification.rb', line 110

def self.from_config(config)
  return config.response_verification_options if config.respond_to?(:response_verification_options)

  new(
    certificate: Certificate.new(
      trust_store: config.verification_trust_store,
      verify_not_expired: config.check_certificate_validity
    ),
    timestamp: Timestamp.new(
      validate: config.validate_timestamp,
      tolerance_seconds: config.clock_skew
    )
  )
end