Akami
Building Web Service Security.
The XML namespaces used by this gem begin with http://docs.oasis-open.org/wss/2004/01/. That URL has PDF documentation of "Web Services Security UsernameToken Profile 1.0" and "Web Services Security: SOAP Message Security 1.0 (WS-Security 2004)".
To place this in a historical context Wikipedia on WS-Security mentions "wsse" namespace prefix in its History section.
Installation
Akami is available through Rubygems and can be installed via:
$ gem install akami
Getting started
wsse = Akami.wsse
Set the credentials for wsse:UsernameToken
basic auth:
wsse.credentials "username", "password"
Set the credentials for wsse:UsernameToken
digest auth:
wsse.credentials "username", "password", :digest
Enable wsu:Timestamp
headers. wsu:Created
is automatically set to Time.now
and wsu:Expires
is set to Time.now + 60
:
wsse.timestamp = true
Manually specify the values for wsu:Created
and wsu:Expires
:
wsse.created_at = Time.now
wsse.expires_at = Time.now + 60
Akami is based on an autovivificating Hash. So if you need to add custom tags, you can add them.
wsse["wsse:Security"]["wsse:UsernameToken"] = { "Organization" => "ACME" }
When generating the XML for the request, this Hash will be merged with another Hash containing
all the default tags and values.
This way you might dig into some code, but then you can even overwrite the default values.
wsse.to_xml