Class: WSDL::Security::RequestPolicy

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

Overview

Immutable request-side WS-Security policy.

This policy captures what should be applied to outgoing requests, but does not hold per-request runtime artifacts (IDs, nonce, timestamps). Runtime objects are created by RequestMaterializer for each call.

Defined Under Namespace

Classes: Signature, Timestamp, UsernameToken

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(username_token: nil, timestamp: nil, signature: nil) ⇒ RequestPolicy

Returns a new instance of RequestPolicy.

Parameters:



31
32
33
34
35
36
# File 'lib/wsdl/security/request_policy.rb', line 31

def initialize(username_token: nil, timestamp: nil, signature: nil)
  @username_token = username_token
  @timestamp = timestamp
  @signature = signature
  freeze
end

Instance Attribute Details

#signatureSignature? (readonly)

Returns:



45
46
47
# File 'lib/wsdl/security/request_policy.rb', line 45

def signature
  @signature
end

#timestampTimestamp? (readonly)

Returns:



42
43
44
# File 'lib/wsdl/security/request_policy.rb', line 42

def timestamp
  @timestamp
end

#username_tokenUsernameToken? (readonly)

Returns:



39
40
41
# File 'lib/wsdl/security/request_policy.rb', line 39

def username_token
  @username_token
end

Class Method Details

.emptyRequestPolicy

Creates an empty request policy.

Returns:



24
25
26
# File 'lib/wsdl/security/request_policy.rb', line 24

def self.empty
  new
end

Instance Method Details

#configured?Boolean

Returns:

  • (Boolean)


66
67
68
# File 'lib/wsdl/security/request_policy.rb', line 66

def configured?
  username_token? || timestamp? || signature?
end

#explicit_namespace_prefixes?Boolean

Returns:

  • (Boolean)


96
97
98
# File 'lib/wsdl/security/request_policy.rb', line 96

def explicit_namespace_prefixes?
  @signature&.options&.explicit_namespace_prefixes? || false
end

#key_referenceSymbol

Returns:

  • (Symbol)


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

def key_reference
  @signature&.options&.key_reference || Constants::KeyReference::BINARY_SECURITY_TOKEN
end

#sign_addressing?Boolean

Returns:

  • (Boolean)


91
92
93
# File 'lib/wsdl/security/request_policy.rb', line 91

def sign_addressing?
  @signature&.options&.sign_addressing? || false
end

#sign_timestamp?Boolean

Returns:

  • (Boolean)


86
87
88
# File 'lib/wsdl/security/request_policy.rb', line 86

def sign_timestamp?
  (@signature&.options&.sign_timestamp? && timestamp?) || false
end

#signature?Boolean

Returns:

  • (Boolean)


81
82
83
# File 'lib/wsdl/security/request_policy.rb', line 81

def signature?
  !@signature.nil?
end

#timestamp?Boolean

Returns:

  • (Boolean)


76
77
78
# File 'lib/wsdl/security/request_policy.rb', line 76

def timestamp?
  !@timestamp.nil?
end

#username_token?Boolean

Returns:

  • (Boolean)


71
72
73
# File 'lib/wsdl/security/request_policy.rb', line 71

def username_token?
  !@username_token.nil?
end

#with_signature(signature) ⇒ RequestPolicy

Parameters:

Returns:



61
62
63
# File 'lib/wsdl/security/request_policy.rb', line 61

def with_signature(signature)
  self.class.new(username_token: @username_token, timestamp: @timestamp, signature:)
end

#with_timestamp(timestamp) ⇒ RequestPolicy

Parameters:

Returns:



55
56
57
# File 'lib/wsdl/security/request_policy.rb', line 55

def with_timestamp(timestamp)
  self.class.new(username_token: @username_token, timestamp:, signature: @signature)
end

#with_username_token(username_token) ⇒ RequestPolicy

Parameters:

Returns:



49
50
51
# File 'lib/wsdl/security/request_policy.rb', line 49

def with_username_token(username_token)
  self.class.new(username_token:, timestamp: @timestamp, signature: @signature)
end