Generate a Metadata Object from string in OpenSAML3

DD K ddk05361 at gmail.com
Wed Aug 14 04:32:38 EDT 2019


Sorry the first code snippet should be as follows:

private EntityDescriptor generateMetadataObjectFromString(String
metadataString) {
    EntityDescriptor entityDescriptor = null;
    try {
        DocumentBuilderFactory factory =
IdentityUtil.getSecuredDocumentBuilderFactory();
        factory.setNamespaceAware(true);
        DocumentBuilder builder = factory.newDocumentBuilder();
        Document document = builder.parse(new
ByteArrayInputStream(metadataString.getBytes()));
        Element node = document.getDocumentElement();
        DOMMetadataProvider idpMetaDataProvider = new DOMMetadataProvider(node);
        idpMetaDataProvider.setRequireValidMetadata(true);
        idpMetaDataProvider.setParserPool(new BasicParserPool());
        idpMetaDataProvider.initialize();
        XMLObject xmlObject = idpMetaDataProvider.getMetadata();
        entityDescriptor = (EntityDescriptor) xmlObject;
    } catch (MetadataProviderException | SAXException |
ParserConfigurationException | IOException e) {
        log.error("Error While reading Service Provider metadata xml", e);
    }
    return entityDescriptor;
}


On Wed, Aug 14, 2019 at 1:59 PM DD K <ddk05361 at gmail.com> wrote:

> Hi All,
>
> What I'm currently trying is to migrate from OpenSAML2.x to OpenSAML3.x.
> Currently on OpenSAML2.x the code is as below:
>
> private EntityDescriptor generateMetadataObjectFromString(String metadataString) {
>     EntityDescriptor entityDescriptor = null;
>     try {
>         DocumentBuilderFactory factory = IdentityUtil.getSecuredDocumentBuilderFactory();
>         factory.setNamespaceAware(true);
>         DocumentBuilder builder = factory.newDocumentBuilder();
>         Document document = builder.parse(new ByteArrayInputStream(metadataString.getBytes()));
>         Element node = document.getDocumentElement();
>         DOMMetadataResolver idpMetaDataProvider = new DOMMetadataResolver(node);
>         idpMetaDataProvider.setRequireValidMetadata(true);
>         idpMetaDataProvider.setParserPool(new BasicParserPool());
>         idpMetaDataProvider.initialize();
>         XMLObject xmlObject = idpMetaDataProvider.getMetadata();
>         entityDescriptor = (EntityDescriptor) xmlObject;
>     } catch ( ComponentInitializationException | SAXException | ParserConfigurationException | IOException e) {
>         log.error("Error While reading Service Provider metadata xml", e);
>     }
>     return entityDescriptor;
> }
>
>
> So after changing them to new classes and methods it looked like:
>
> private EntityDescriptor generateMetadataObjectFromString(String metadataString) {
>     EntityDescriptor entityDescriptor = null;
>     try {
>         DocumentBuilderFactory factory = IdentityUtil.getSecuredDocumentBuilderFactory();
>         factory.setNamespaceAware(true);
>         DocumentBuilder builder = factory.newDocumentBuilder();
>         Document document = builder.parse(new ByteArrayInputStream(metadataString.getBytes()));
>         Element node = document.getDocumentElement();
>         DOMMetadataResolver idpMetaDataProvider = new DOMMetadataResolver(node);
>         idpMetaDataProvider.setRequireValidMetadata(true);
>         idpMetaDataProvider.setParserPool(new BasicParserPool());
>         idpMetaDataProvider.initialize();
>         // XMLObject xmlObject = idpMetaDataProvider.getMetadata();
>         // entityDescriptor = (EntityDescriptor) xmlObject;
>     } catch ( ComponentInitializationException | SAXException | ParserConfigurationException | IOException e) {
>         log.error("Error While reading Service Provider metadata xml", e);
>     }
>     return entityDescriptor;
> }
>
> 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 *generateMetadata()* in *DOMMetadataResolver*, keeping this apart
> there is a method called *resolveSingle()* but it needs a *CriteriaSet(which
> i do not know what to include)*. The *two commented lines* are the ones
> where I'm stuck but if I'm missing anything in any other place let me know.
>
> Any answers would be appreciated,
> Deshan Koswatte
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://shibboleth.net/pipermail/dev/attachments/20190814/0172ced2/attachment-0001.html>


More information about the dev mailing list