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