Skip to content

Commit

Permalink
[SHIBUI-452]
Browse files Browse the repository at this point in the history
implement service endpoint
  • Loading branch information
Jj! committed May 4, 2018
1 parent a731e00 commit 858e46d
Showing 1 changed file with 40 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -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());
}
}
}

0 comments on commit 858e46d

Please sign in to comment.