Is it an option for you just to use the DocumentBuilder then and specify a
DOM Element on the Claim?

Colm.

On Tue, Jan 30, 2018 at 12:02 PM, Tóth Csaba <[email protected]> wrote:

> Hello!
>
> The problem is not about the place, where I can do that. the problem,
> that I cant create the given XML fragment, because:
> a, I dont get the attributes back (the SAML dont contains the attributes
> of the element), the element is present (and an empty String value too)
> b, I get XML error: "Cannot replace an element's default namespace"
>
> There is an example (you send it), but that create an String element
> with the same namespace (SAML2 namespace), and a know xsi:type
> I need more complex XML structure, with a third part namespace, a
> xsi:type attribute, and multiple attributes with third part namespaces.
>
> Its not hard with the documentBuilder, but I dont know how to do this
> with the OpenSAML XMLObjects.
>
> Csaba
>
>
>
> On 2018.01.30. 11:56, Colm O hEigeartaigh wrote:
> > Are you trying to add this information to the SAML Assertion created in
> the
> > STS after receiving a Claim? If so then you shouldn't be adding it to the
> > "requestClaim", but to the ProcessedClaim instance that is created in the
> > CallbackHandler. I added a test to CXF that shows how to do it in a
> > CustomClaimsHandler:
> >
> > https://github.com/apache/cxf/blob/master/services/sts/
> systests/advanced/src/test/java/org/apache/cxf/systest/sts/deployment/
> CustomClaimsHandler.java
> >
> > Colm.
> >
> > On Mon, Jan 29, 2018 at 6:48 PM, Tóth Csaba <[email protected]> wrote:
> >
> >> Hello!
> >> Thanx, but look like not helped:
> >>
> >>                                 XMLObjectBuilderFactory builderFactory =
> >>
> >> XMLObjectProviderRegistrySupport.getBuilderFactory();
> >>                                 @SuppressWarnings("unchecked")
> >>                                 XMLObjectBuilder<XSAny> xsAnyBuilder =
> >>
> >> (XMLObjectBuilder<XSAny>)builderFactory.getBuilder(XSAny.TYPE_NAME);
> >>                                 XSAny attributeValue =
> >>
> >> xsAnyBuilder.buildObject(AttributeValue.DEFAULT_ELEMENT_NAME);
> >>
> >>                                 XSAny node =
> >> xsAnyBuilder.buildObject(new QName("... namespace ... "," ... element
> >> name... "),new QName("http://www.w3.org/2001/XMLSchema-instance
> ","CE"));
> >>
> >> attributeValue.getUnknownXMLObjects().add(node);
> >>
> >>                                 node.getUnknownAttributes().put(new
> >> QName(".. attr namespace...","Code"),code);
> >>                                 requestClaim.addValue(attributeValue);
> >>
> >> but I get an error for the building the SAML, that "Cannot replace an
> >> element's default namespace"
> >> Csaba
> >>
> >>
> >> On 2018.01.29. 17:59, Colm O hEigeartaigh wrote:
> >>> This WSS4J unit test might help you - it shows how to add a custom
> >>> Attribute:
> >>>
> >>> https://github.com/apache/wss4j/blob/94f0e42d03011fa97122bcd495d268
> >> ff33a5107f/ws-security-dom/src/test/java/org/apache/
> >> wss4j/dom/saml/SamlTokenTest.java#L578
> >>> Colm.
> >>>
> >>> On Mon, Jan 29, 2018 at 3:42 PM, Tóth Csaba <[email protected]> wrote:
> >>>
> >>>> Hello!
> >>>>
> >>>> I need to put an XML fragment to one of the SAML Attribute:
> >>>>
> >>>> <saml-a:Attribute xmlns:saml-a="urn:oasis:names:
> tc:SAML:2.0:assertion"
> >>>> xmlns:wsa="http://www.w3.org/2005/08/addressing";>
> >>>> <saml-a:AttributeValue xmlns:xsi="http://www.w3.org/
> >>>> 2001/XMLSchema-instance">
> >>>>         <PurposeOfUse xmlns=" .... " xsi:type=" ... " attr1=" ... "
> >>>> attr2=" ... "/>
> >>>> </saml-a:AttributeValue>
> >>>> </saml-a:Attribute>
> >>>>
> >>>> (the xsi:type is not an standard schema type)
> >>>>
> >>>> I get this information from an Claim. I parse already, and I have all
> >>>> the fields. I need some solution how can I put to the requestClaim ant
> >>>> the ClaimParser
> >>>> I try to use the OpenSAML, to create a AttributeValue, but I dont know
> >>>> how to create the PurposeOfUse element.
> >>>>
> >>>> Any idee?
> >>>> Thanx
> >>>>
> >>>> Csaba
> >>>>
> >>>>
> >>>>
> >>>>
> >>
> >
>
>


-- 
Colm O hEigeartaigh

Talend Community Coder
http://coders.talend.com

Reply via email to