Hello! Yes, its an option, just dont know, how will this signed. but. Thanx I will try.
Csaba On 2018.01.30. 13:11, Colm O hEigeartaigh wrote: > 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 >>>>>> >>>>>> >>>>>> >>>>>> >> >
