Fri, Dec 15, 2006
So I’ve started on SAMUEL 2 in my spare time. SAMUEL 1 was getting a bit old in the tooth and was a custom partial implementation of the SAML1.1 spec. It did it’s work using SAX and DOM depending on whether you were parsing or creating XML representations of SAML tokens. It became obsolete in Guanxi when I discovered XMLBeans which gave me a much more powerful toolkit for working with SAML without the overhead of redesinging SAMUEL. However, this means that Guanxi is tightly coupled to the SAML1.1 schema. Not a real problem, just not quite aesthetic enough for me.
So now I’ve started on the next generation of SAML support for Guanxi, the new SAMUEL 2 toolkit. It’s designed to insulate Guanxi from the SAML schemata. It does this by exposing an API that covers the assertion and protocol areas of the SAML specs and a SAMLFactory that an application such as Guanxi can use to create and parse SAML tokens. The SAMLFactory will be responsible for creating the top level tokens that are standalone and do not depend on other tokens. Those top level tokens will provide methods to add or create their respective sub tokens.
The SAMLFactory loads up a properties file and instantiates a SAMLProvider, to which it delegates all calls so the provider does all the work of implementing the api. The application codes against the api.
At the moment I’m coding an XMLBeansSAMLProvider.