Generate a Metadata Object from string in OpenSAML3
DD K
ddk05361 at gmail.com
Wed Aug 14 04:29:35 EDT 2019
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/43bfd69c/attachment.html>
More information about the dev
mailing list