Hi Mark, I am implementing XML::Compile::WSS and the API I am working with expects the header to contain a SecurityTokenReference with X509Data/X509IssuerSerial block.
http://www.ws-i.org/Profiles/BasicSecurityProfile-1.1.html#KeyIdentifier_or_X509IssuerSerial_for_External_References XML::Compile::WSS::KeyInfo provides three methods for publish_token (KEYNAME, SECTOKREF_KEYID, SECTOKREF_URI). Unfortunately, none of these produce the KeyInfo block in the way desired. So, I have tried my hand at creating schema->writer(s). The issue I am encountering is referencing the element types for X509IssuerName and X509SerialNumber as they are elements in a complexType (X509IssuerSerial) under the main X509Data block that do not have a corresponding element (i.e. X509Data => ds:X509DataType). As a result, attempts to create schema->writer for these elements fail: my $x509w = $schema->writer('ds:X509Data'); ## works correctly my $x509isw = $schema->writer('ds:X509IssuerSerial'); ## returns error: cannot find element or attribute `{ http://www.w3.org/2000/09/xmldsig#}X509IssuerSerial' at ds:X509IssuerSerial my $x509inw = $schema->writer('ds:X509IssuerName'); ## returns error: cannot find element or attribute `{ http://www.w3.org/2000/09/xmldsig#}X509IssuerName' at ds:X509IssuerName Reviewing the methods for publishing the token, it seems to be just a matter of creating writers for each element and passing them to writers for their parent elements. Using 'seq_ds_X509IssuerSerial' I can reference that element in X509DataType but I'm not sure how to construct writers for elements under X509IssuerSerialType without the corresponding element. As this is part of the specification, I imagine it has come up before and I am just overlooking the solution. I appreciate your feedback and a big "Thank You" for developing this great suite of modules. Best regards, James Moore [email protected]
_______________________________________________ Xml-compile mailing list [email protected] http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/xml-compile
