Class: WSDL::Security::ResponsePolicy
- Inherits:
-
Object
- Object
- WSDL::Security::ResponsePolicy
- Defined in:
- lib/wsdl/security/response_policy.rb
Overview
Immutable response-side security policy.
This policy controls whether response verification is enforced.
Constant Summary collapse
- MODE_DISABLED =
Do not enforce response signature validation on call.
:disabled- MODE_IF_PRESENT =
Verify response only if a signature is present.
:if_present- MODE_REQUIRED =
Require a valid signature on every response.
:required- MODES =
Allowed response verification modes.
[MODE_DISABLED, MODE_IF_PRESENT, MODE_REQUIRED].freeze
Instance Attribute Summary collapse
- #mode ⇒ Symbol readonly
- #options ⇒ ResponseVerification::Options readonly
Class Method Summary collapse
-
.default ⇒ ResponsePolicy
Creates the default response policy.
Instance Method Summary collapse
- #disabled? ⇒ Boolean
-
#enforce!(response) ⇒ void
Enforces response verification according to this policy's mode.
-
#initialize(mode:, options:) ⇒ ResponsePolicy
constructor
A new instance of ResponsePolicy.
- #required? ⇒ Boolean
- #verify_if_present? ⇒ Boolean
- #with_mode(mode) ⇒ ResponsePolicy
- #with_options(options) ⇒ ResponsePolicy
Constructor Details
#initialize(mode:, options:) ⇒ ResponsePolicy
Returns a new instance of ResponsePolicy.
33 34 35 36 37 38 39 |
# File 'lib/wsdl/security/response_policy.rb', line 33 def initialize(mode:, options:) validate_mode!(mode) @mode = mode = freeze end |
Instance Attribute Details
#mode ⇒ Symbol (readonly)
42 43 44 |
# File 'lib/wsdl/security/response_policy.rb', line 42 def mode @mode end |
#options ⇒ ResponseVerification::Options (readonly)
45 46 47 |
# File 'lib/wsdl/security/response_policy.rb', line 45 def end |
Class Method Details
.default ⇒ ResponsePolicy
Creates the default response policy.
27 28 29 |
# File 'lib/wsdl/security/response_policy.rb', line 27 def self.default new(mode: MODE_DISABLED, options: ResponseVerification::Options.default) end |
Instance Method Details
#disabled? ⇒ Boolean
60 61 62 |
# File 'lib/wsdl/security/response_policy.rb', line 60 def disabled? @mode == MODE_DISABLED end |
#enforce!(response) ⇒ void
This method returns an undefined value.
Enforces response verification according to this policy's mode.
80 81 82 83 84 85 86 87 88 89 |
# File 'lib/wsdl/security/response_policy.rb', line 80 def enforce!(response) case @mode when MODE_DISABLED nil when MODE_IF_PRESENT response.security.verify! if response.security.signature_present? when MODE_REQUIRED response.security.verify! end end |
#required? ⇒ Boolean
70 71 72 |
# File 'lib/wsdl/security/response_policy.rb', line 70 def required? @mode == MODE_REQUIRED end |
#verify_if_present? ⇒ Boolean
65 66 67 |
# File 'lib/wsdl/security/response_policy.rb', line 65 def verify_if_present? @mode == MODE_IF_PRESENT end |
#with_mode(mode) ⇒ ResponsePolicy
49 50 51 |
# File 'lib/wsdl/security/response_policy.rb', line 49 def with_mode(mode) self.class.new(mode:, options: ) end |
#with_options(options) ⇒ ResponsePolicy
55 56 57 |
# File 'lib/wsdl/security/response_policy.rb', line 55 def () self.class.new(mode: @mode, options:) end |