From 858e46d9c8a75c5844bbb4758e8ec0f1672a1be3 Mon Sep 17 00:00:00 2001 From: Jj! Date: Fri, 4 May 2018 18:15:26 -0500 Subject: [PATCH] [SHIBUI-452] implement service endpoint --- .../MetadataProvidersController.java | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/MetadataProvidersController.java diff --git a/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/MetadataProvidersController.java b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/MetadataProvidersController.java new file mode 100644 index 000000000..538cfa5cf --- /dev/null +++ b/backend/src/main/java/edu/internet2/tier/shibboleth/admin/ui/controller/MetadataProvidersController.java @@ -0,0 +1,40 @@ +package edu.internet2.tier.shibboleth.admin.ui.controller; + +import edu.internet2.tier.shibboleth.admin.ui.service.MetadataResolverService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import javax.xml.transform.OutputKeys; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamResult; +import java.io.IOException; +import java.io.StringWriter; + +@Controller +@RequestMapping(value = "/api/metadataProviders") +public class MetadataProvidersController { + private static final Logger logger = LoggerFactory.getLogger(MetadataProvidersController.class); + + @Autowired + MetadataResolverService metadataResolverService; + + @RequestMapping(produces = "application/xml") + public ResponseEntity getXml() throws IOException, TransformerException { + // TODO: externalize + try (StringWriter writer = new StringWriter()) { + Transformer transformer = TransformerFactory.newInstance().newTransformer(); + transformer.setOutputProperty(OutputKeys.INDENT, "yes"); + transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2"); + + transformer.transform(new DOMSource(metadataResolverService.generateConfiguration()), new StreamResult(writer)); + return ResponseEntity.ok(writer.toString()); + } + } +}