<div dir="ltr">Sorry the first code snippet should be as follows:<br><pre style="background-color:rgb(43,43,43);color:rgb(169,183,198);font-family:"DejaVu Sans Mono";font-size:9pt"><span style="color:rgb(204,120,50)">private </span>EntityDescriptor <span style="color:rgb(255,198,109)">generateMetadataObjectFromString</span>(String metadataString) {<br> EntityDescriptor entityDescriptor = <span style="color:rgb(204,120,50)">null;<br></span><span style="color:rgb(204,120,50)"> try </span>{<br> DocumentBuilderFactory factory = IdentityUtil.<span style="font-style:italic">getSecuredDocumentBuilderFactory</span>()<span style="color:rgb(204,120,50)">;<br></span><span style="color:rgb(204,120,50)"> </span>factory.setNamespaceAware(<span style="color:rgb(204,120,50)">true</span>)<span style="color:rgb(204,120,50)">;<br></span><span style="color:rgb(204,120,50)"> </span>DocumentBuilder builder = factory.newDocumentBuilder()<span style="color:rgb(204,120,50)">;<br></span><span style="color:rgb(204,120,50)"> </span>Document document = builder.parse(<span style="color:rgb(204,120,50)">new </span>ByteArrayInputStream(metadataString.getBytes()))<span style="color:rgb(204,120,50)">;<br></span><span style="color:rgb(204,120,50)"> </span>Element node = document.getDocumentElement()<span style="color:rgb(204,120,50)">;<br></span><span style="color:rgb(204,120,50)"> </span>DOMMetadataProvider idpMetaDataProvider = <span style="color:rgb(204,120,50)">new </span>DOMMetadataProvider(node)<span style="color:rgb(204,120,50)">;<br></span><span style="color:rgb(204,120,50)"> </span>idpMetaDataProvider.setRequireValidMetadata(<span style="color:rgb(204,120,50)">true</span>)<span style="color:rgb(204,120,50)">;<br></span><span style="color:rgb(204,120,50)"> </span>idpMetaDataProvider.setParserPool(<span style="color:rgb(204,120,50)">new </span>BasicParserPool())<span style="color:rgb(204,120,50)">;<br></span><span style="color:rgb(204,120,50)"> </span>idpMetaDataProvider.initialize()<span style="color:rgb(204,120,50)">;<br></span><span style="color:rgb(204,120,50)"> </span>XMLObject xmlObject = idpMetaDataProvider.getMetadata()<span style="color:rgb(204,120,50)">;<br></span><span style="color:rgb(204,120,50)"> </span>entityDescriptor = (EntityDescriptor) xmlObject<span style="color:rgb(204,120,50)">;<br></span><span style="color:rgb(204,120,50)"> </span>} <span style="color:rgb(204,120,50)">catch </span>(MetadataProviderException | SAXException | ParserConfigurationException | IOException e) {<br> <span style="color:rgb(152,118,170);font-style:italic">log</span>.error(<span style="color:rgb(106,135,89)">"Error While reading Service Provider metadata xml"</span><span style="color:rgb(204,120,50)">, </span>e)<span style="color:rgb(204,120,50)">;<br></span><span style="color:rgb(204,120,50)"> </span>}<br> <span style="color:rgb(204,120,50)">return </span>entityDescriptor<span style="color:rgb(204,120,50)">;<br></span>}</pre></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Aug 14, 2019 at 1:59 PM DD K <<a href="mailto:ddk05361@gmail.com">ddk05361@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Hi All,<br><br></div><div>What I'm currently trying is to migrate from OpenSAML2.x to OpenSAML3.x. Currently on OpenSAML2.x the code is as below:</div><div><pre style="background-color:rgb(43,43,43);color:rgb(169,183,198);font-family:"DejaVu Sans Mono";font-size:9pt"><span style="color:rgb(204,120,50)">private </span>EntityDescriptor <span style="color:rgb(255,198,109)">generateMetadataObjectFromString</span>(String metadataString) {<br> EntityDescriptor entityDescriptor = <span style="color:rgb(204,120,50)">null;<br></span><span style="color:rgb(204,120,50)"> try </span>{<br> DocumentBuilderFactory factory = IdentityUtil.<span style="font-style:italic">getSecuredDocumentBuilderFactory</span>()<span style="color:rgb(204,120,50)">;<br></span><span style="color:rgb(204,120,50)"> </span>factory.setNamespaceAware(<span style="color:rgb(204,120,50)">true</span>)<span style="color:rgb(204,120,50)">;<br></span><span style="color:rgb(204,120,50)"> </span>DocumentBuilder builder = factory.newDocumentBuilder()<span style="color:rgb(204,120,50)">;<br></span><span style="color:rgb(204,120,50)"> </span>Document document = builder.parse(<span style="color:rgb(204,120,50)">new </span>ByteArrayInputStream(metadataString.getBytes()))<span style="color:rgb(204,120,50)">;<br></span><span style="color:rgb(204,120,50)"> </span>Element node = document.getDocumentElement()<span style="color:rgb(204,120,50)">;<br></span><span style="color:rgb(204,120,50)"> </span>DOMMetadataResolver idpMetaDataProvider = <span style="color:rgb(204,120,50)">new </span>DOMMetadataResolver(node)<span style="color:rgb(204,120,50)">;<br></span><span style="color:rgb(204,120,50)"> </span>idpMetaDataProvider.setRequireValidMetadata(<span style="color:rgb(204,120,50)">true</span>)<span style="color:rgb(204,120,50)">;<br></span><span style="color:rgb(204,120,50)"> </span>idpMetaDataProvider.setParserPool(<span style="color:rgb(204,120,50)">new </span>BasicParserPool())<span style="color:rgb(204,120,50)">;<br></span><span style="color:rgb(204,120,50)"> </span>idpMetaDataProvider.initialize()<span style="color:rgb(204,120,50)">;<br></span><span style="color:rgb(204,120,50)"> </span>XMLObject xmlObject = idpMetaDataProvider.getMetadata()<span style="color:rgb(204,120,50)">;<br></span><span style="color:rgb(204,120,50)"> </span>entityDescriptor = (EntityDescriptor) xmlObject<span style="color:rgb(204,120,50)">;<br></span><span style="color:rgb(204,120,50)"> </span>} <span style="color:rgb(204,120,50)">catch </span>( ComponentInitializationException | SAXException | ParserConfigurationException | IOException e) {<br> <span style="color:rgb(152,118,170);font-style:italic">log</span>.error(<span style="color:rgb(106,135,89)">"Error While reading Service Provider metadata xml"</span><span style="color:rgb(204,120,50)">, </span>e)<span style="color:rgb(204,120,50)">;<br></span><span style="color:rgb(204,120,50)"> </span>}<br> <span style="color:rgb(204,120,50)">return </span>entityDescriptor<span style="color:rgb(204,120,50)">;<br></span>}</pre></div><div><br></div><div>So after changing them to new classes and methods it looked like:<br><pre style="background-color:rgb(43,43,43);color:rgb(169,183,198);font-family:"DejaVu Sans Mono";font-size:9pt"><span style="color:rgb(204,120,50)">private </span>EntityDescriptor <span style="color:rgb(255,198,109)">generateMetadataObjectFromString</span>(String metadataString) {<br> EntityDescriptor entityDescriptor = <span style="color:rgb(204,120,50)">null;<br></span><span style="color:rgb(204,120,50)"> try </span>{<br> DocumentBuilderFactory factory = IdentityUtil.<span style="font-style:italic">getSecuredDocumentBuilderFactory</span>()<span style="color:rgb(204,120,50)">;<br></span><span style="color:rgb(204,120,50)"> </span>factory.setNamespaceAware(<span style="color:rgb(204,120,50)">true</span>)<span style="color:rgb(204,120,50)">;<br></span><span style="color:rgb(204,120,50)"> </span>DocumentBuilder builder = factory.newDocumentBuilder()<span style="color:rgb(204,120,50)">;<br></span><span style="color:rgb(204,120,50)"> </span>Document document = builder.parse(<span style="color:rgb(204,120,50)">new </span>ByteArrayInputStream(metadataString.getBytes()))<span style="color:rgb(204,120,50)">;<br></span><span style="color:rgb(204,120,50)"> </span>Element node = document.getDocumentElement()<span style="color:rgb(204,120,50)">;<br></span><span style="color:rgb(204,120,50)"> </span>DOMMetadataResolver idpMetaDataProvider = <span style="color:rgb(204,120,50)">new </span>DOMMetadataResolver(node)<span style="color:rgb(204,120,50)">;<br></span><span style="color:rgb(204,120,50)"> </span>idpMetaDataProvider.setRequireValidMetadata(<span style="color:rgb(204,120,50)">true</span>)<span style="color:rgb(204,120,50)">;<br></span><span style="color:rgb(204,120,50)"> </span>idpMetaDataProvider.setParserPool(<span style="color:rgb(204,120,50)">new </span>BasicParserPool())<span style="color:rgb(204,120,50)">;<br></span><span style="color:rgb(204,120,50)"> </span>idpMetaDataProvider.initialize()<span style="color:rgb(204,120,50)">;<br></span><span style="color:rgb(204,120,50)"> // </span>XMLObject xmlObject = idpMetaDataProvider.getMetadata()<span style="color:rgb(204,120,50)">;<br></span><span style="color:rgb(204,120,50)"> </span><span style="color:rgb(204,120,50)">// </span>entityDescriptor = (EntityDescriptor) xmlObject<span style="color:rgb(204,120,50)">;<br></span><span style="color:rgb(204,120,50)"> </span>} <span style="color:rgb(204,120,50)">catch </span>( ComponentInitializationException | SAXException | ParserConfigurationException | IOException e) {<br> <span style="color:rgb(152,118,170);font-style:italic">log</span>.error(<span style="color:rgb(106,135,89)">"Error While reading Service Provider metadata xml"</span><span style="color:rgb(204,120,50)">, </span>e)<span style="color:rgb(204,120,50)">;<br></span><span style="color:rgb(204,120,50)"> </span>}<br> <span style="color:rgb(204,120,50)">return </span>entityDescriptor<span style="color:rgb(204,120,50)">;<br></span>}</pre></div><div>But I've struggled to find a resource on how to generate a EntityDescriptor to return from the method cause now there is no method such as <i>generateMetadata()</i> in <i>DOMMetadataResolver</i>, keeping this apart there is a method called <i>resolveSingle()</i> but it needs a <i>CriteriaSet(which i do not know what to include)</i>. The <b>two commented lines</b> are the ones where I'm stuck but if I'm missing anything in any other place let me know. </div><div><br></div><div>Any answers would be appreciated,<br></div><div>Deshan Koswatte<br></div></div>
</blockquote></div>