samuel xal interfaces update

Mon, Dec 12, 2005

Following on from the previous post, I decided to split the XAL interfaces. Each SAML object now implements two interfaces:

  • org.guanxi.samuel.xal.XALObject - the base interface that defines the functionality of all XAL objects
  • org.guanxi.samuel.xal.saml1_1.protocol.* - defines the functionality of a SAML 1.1 protocol schema object
  • org.guanxi.samuel.xal.saml2_0.assertion.* - defines the functionality of a SAML 1.1 assertion schema object
  • org.guanxi.samuel.xal.saml2_0.protocol.* - defines the functionality of a SAML 2.0 protocol schema object
  • org.guanxi.samuel.xal.saml2_0.assertion.* - defines the functionality of a SAML 2.0 assertion schema object

The SAML 1.1 and 2.0 implementations are separate at the moment. When I’ve looked into 2.0 it might be that I can combine the two based on overlapping interfaces.

So, an implementation of a SAML Request object would be:

The XALObject defines object functionality

public interface XALObject {   public void inject(Node domNode) throws XALException;   public Node getDOM();   public void syphon(File file) throws XALException; }

The Request interface defines functionality specific to a SAML Request

public interface Request extends XALObject {   public void addAttributeQuery(AttributeQuery attrQuery); }

A Request implementation should provide both raw XAL and SAML functionality

public class RequestImpl implements Request {   … }

comments powered by Disqus