Project

akami

1.7
Low commit activity in last 3 years
There's a lot of open issues
A long-lived project that still receives updates
Building Web Service Security
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 13.0
~> 3.12
~> 0.5

Runtime

>= 0
>= 0.4.0
 Project Readme

Akami

Building Web Service Security.

Ruby

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