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.



48
49
50
# File 'lib/akami/wsse.rb', line 48

def created_at
  @created_at
end

#digest=(value) ⇒ Object (writeonly)

Sets the attribute digest

Parameters:

  • value

    the value to set the attribute digest to.



63
64
65
# File 'lib/akami/wsse.rb', line 63

def digest=(value)
  @digest = value
end

#expires_atObject

Returns the value of attribute expires_at.



48
49
50
# File 'lib/akami/wsse.rb', line 48

def expires_at
  @expires_at
end

#passwordObject

Returns the value of attribute password.



48
49
50
# File 'lib/akami/wsse.rb', line 48

def password
  @password
end

#signatureObject

Returns the value of attribute signature.



48
49
50
# File 'lib/akami/wsse.rb', line 48

def signature
  @signature
end

#usernameObject

Returns the value of attribute username.



48
49
50
# File 'lib/akami/wsse.rb', line 48

def username
  @username
end

#verify_responseObject

Returns the value of attribute verify_response.



48
49
50
# File 'lib/akami/wsse.rb', line 48

def verify_response
  @verify_response
end

Instance Method Details

#[](key) ⇒ Object

Returns a value from the WSSE Hash.



31
32
33
# File 'lib/akami/wsse.rb', line 31

def [](key)
  hash[key]
end

#[]=(key, value) ⇒ Object

Sets a value on the WSSE Hash.



36
37
38
# File 'lib/akami/wsse.rb', line 36

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

#body_attributesObject

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



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

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.



42
43
44
45
46
# File 'lib/akami/wsse.rb', line 42

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)


59
60
61
# File 'lib/akami/wsse.rb', line 59

def digest?
  !!@digest
end

#sign_with=(klass) ⇒ Object



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

def sign_with=(klass)
  @signature = klass
end

#signature?Boolean

Returns:

  • (Boolean)


54
55
56
# File 'lib/akami/wsse.rb', line 54

def signature?
  !!@signature
end

#timestamp=(timestamp) ⇒ Object

Sets whether to generate a wsu:Timestamp header.



76
77
78
# File 'lib/akami/wsse.rb', line 76

def timestamp=(timestamp)
  @wsu_timestamp = timestamp
end

#timestamp?Boolean

Returns whether to generate a wsu:Timestamp header.

Returns:

  • (Boolean)


71
72
73
# File 'lib/akami/wsse.rb', line 71

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

#to_xmlObject

Returns the XML for a WSSE header.



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

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)


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

def username_token?
  username && password
end