Class: Akami::WSSE

Inherits:
Object
  • Object
show all
Defined in:
lib/akami/wsse.rb,
lib/akami/wsse/certs.rb,
lib/akami/wsse/signature.rb,
lib/akami/wsse/verify_signature.rb

Overview

Akami::WSSE

Building Web Service Security.

Defined Under Namespace

Classes: Certs, InvalidSignature, Signature, VerifySignature

Constant Summary collapse

WSE_NAMESPACE =

Namespace for WS Security Secext.

"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
WSU_NAMESPACE =

Namespace for WS Security Utility.

"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
PASSWORD_TEXT_URI =

PasswordText URI.

"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText"
PASSWORD_DIGEST_URI =

PasswordDigest URI.

"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordDigest"
BASE64_URI =
"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary"

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#created_atObject

Returns the value of attribute created_at.



50
51
52
# File 'lib/akami/wsse.rb', line 50

def created_at
  @created_at
end

#digest=(value) ⇒ Object (writeonly)

Sets the attribute digest

Parameters:

  • value

    the value to set the attribute digest to.



65
66
67
# File 'lib/akami/wsse.rb', line 65

def digest=(value)
  @digest = value
end

#expires_atObject

Returns the value of attribute expires_at.



50
51
52
# File 'lib/akami/wsse.rb', line 50

def expires_at
  @expires_at
end

#passwordObject

Returns the value of attribute password.



50
51
52
# File 'lib/akami/wsse.rb', line 50

def password
  @password
end

#signatureObject

Returns the value of attribute signature.



50
51
52
# File 'lib/akami/wsse.rb', line 50

def signature
  @signature
end

#usernameObject

Returns the value of attribute username.



50
51
52
# File 'lib/akami/wsse.rb', line 50

def username
  @username
end

#verify_responseObject

Returns the value of attribute verify_response.



50
51
52
# File 'lib/akami/wsse.rb', line 50

def verify_response
  @verify_response
end

Instance Method Details

#[](key) ⇒ Object

Returns a value from the WSSE Hash.



33
34
35
# File 'lib/akami/wsse.rb', line 33

def [](key)
  hash[key]
end

#[]=(key, value) ⇒ Object

Sets a value on the WSSE Hash.



38
39
40
# File 'lib/akami/wsse.rb', line 38

def []=(key, value)
  hash[key] = value
end

#body_attributesObject

Hook for Soap::XML that allows us to add attributes to the env:Body tag



83
84
85
86
87
88
89
# File 'lib/akami/wsse.rb', line 83

def body_attributes
  if signature?
    signature.body_attributes
  else
    {}
  end
end

#credentials(username, password, digest = false) ⇒ Object

Sets authentication credentials for a wsse:UsernameToken header. Also accepts whether to use WSSE digest authentication.



44
45
46
47
48
# File 'lib/akami/wsse.rb', line 44

def credentials(username, password, digest = false)
  self.username = username
  self.password = password
  self.digest = digest
end

#digest?Boolean

Returns whether to use WSSE digest. Defaults to false.

Returns:

  • (Boolean)


61
62
63
# File 'lib/akami/wsse.rb', line 61

def digest?
  !!@digest
end

#sign_with=(klass) ⇒ Object



52
53
54
# File 'lib/akami/wsse.rb', line 52

def sign_with=(klass)
  @signature = klass
end

#signature?Boolean

Returns:

  • (Boolean)


56
57
58
# File 'lib/akami/wsse.rb', line 56

def signature?
  !!@signature
end

#timestamp=(timestamp) ⇒ Object

Sets whether to generate a wsu:Timestamp header.



78
79
80
# File 'lib/akami/wsse.rb', line 78

def timestamp=(timestamp)
  @wsu_timestamp = timestamp
end

#timestamp?Boolean

Returns whether to generate a wsu:Timestamp header.

Returns:

  • (Boolean)


73
74
75
# File 'lib/akami/wsse.rb', line 73

def timestamp?
  created_at || expires_at || @wsu_timestamp
end

#to_xmlObject

Returns the XML for a WSSE header.



92
93
94
95
96
97
98
99
# File 'lib/akami/wsse.rb', line 92

def to_xml
  h = wsse_signature if signature? && signature.have_document?
  h = merge_hashes_with_keys(h, wsu_timestamp) if timestamp?
  h = merge_hashes_with_keys(h, wsse_username_token) if username_token?

  return '' unless h
  Gyoku.xml h
end

#username_token?Boolean

Returns whether to generate a wsse:UsernameToken header.

Returns:

  • (Boolean)


68
69
70
# File 'lib/akami/wsse.rb', line 68

def username_token?
  username && password
end