Hi,

I'm trying to implement the STR transformation for Rampart. This
transformation is required to sign SAML tokens. I encountered few
problems with the current infrastructure provided by the
oxs_transform.h and oxs_transformation_factory.h while implementing
this.

In the STR transformation we give the SecurityTokeneReference node to
the transformation function as input. Inside of this function we need
to find the actual token referred by this SecurityTokenReference. We
need to access the Security header to find the actual token. But we
can pass only the SecurityTokenReference node to the transformation
function according to the current implementation. But we need to pass
the soap header node as well. So we need to pass two nodes as input.

Opposite of this problem can be seen in the enveloped XML signature
transformation. In the enveloped transformation the transformation
function should return Signature node and the node containing the
signature. So we need to return two nodes.

My suggested solution is to add another oxs_tr_dtype_t
OXS_TRANSFORM_TYPE_NODE_ARRAY_LIST.

Then if it is required to pass or return more than one node we can use
an array list containg the required nodes.  The values contained in
the array list will be different according to the transformation.

Regards,
Supun.

Reply via email to