use of javax.xml.transform.Transformer in project OpenAM by OpenRock.
the class ValidationErrorHandler method print.
/**
* Prints a Node tree recursively.
* @param node A DOM tree Node
* @param encoding character encoding
* @return An xml String representation of the DOM tree.
*/
public static String print(Node node, String encoding) {
if (node == null) {
return null;
}
try {
TransformerFactory tFactory = TransformerFactory.newInstance();
Transformer transformer = tFactory.newTransformer();
transformer.setOutputProperty("omit-xml-declaration", "yes");
transformer.setOutputProperty("encoding", encoding);
DOMSource source = new DOMSource(node);
ByteArrayOutputStream os = new ByteArrayOutputStream(2000);
StreamResult result = new StreamResult(os);
transformer.transform(source, result);
return os.toString(encoding);
} catch (Exception e) {
return null;
}
}
use of javax.xml.transform.Transformer in project OpenAM by OpenRock.
the class Client method sendRequest.
/**
* Sends a request to a SOAP endpoint and returns the response. The server
* only contains one servlet for different web services. So the SOAP
* endpoint URL has format 'servlet_URL/key'.
*
* @param req the request message.
* @param connectTo the SOAP endpoint URL
* @param certAlias the cert alias of a client certificate
* @param soapAction the SOAPAction header
* @return a response from the SOAP endpoint
* @throws SOAPFaultException if a SOAP Fault occurs
* @throws SOAPBindingException if a error occurs while processing,
* sending or receiving Message
*/
public static Message sendRequest(Message req, String connectTo, String certAlias, String soapAction) throws SOAPBindingException, SOAPFaultException {
URLConnection con = null;
try {
con = getConnection(connectTo, certAlias);
} catch (Exception e) {
Utils.debug.error("Client:sendRequest", e);
throw new SOAPBindingException(e.getMessage());
}
if (soapAction == null || soapAction.length() == 0) {
soapAction = "";
}
con.setRequestProperty(SOAPBindingConstants.SOAP_ACTION_HEADER, soapAction);
Document doc = null;
int securityProfileType = req.getSecurityProfileType();
if (securityProfileType == Message.ANONYMOUS || securityProfileType == Message.BEARER_TOKEN) {
doc = req.toDocument(true);
} else {
Element sigElem = SecurityUtils.signMessage(req);
if (sigElem == null) {
String msg = Utils.bundle.getString("cannotSignRequest");
Utils.debug.error("Client.sendRequest: " + msg);
throw new SOAPBindingException(msg);
}
doc = sigElem.getOwnerDocument();
}
if (Utils.debug.messageEnabled()) {
Utils.debug.message("Client.sendRequest: signed request\n" + req);
}
OutputStream os = null;
try {
os = con.getOutputStream();
Transformer transformer = XMLUtils.getTransformerFactory().newTransformer();
transformer.setOutputProperty("omit-xml-declaration", "yes");
transformer.transform(new DOMSource(doc.getDocumentElement()), new StreamResult(os));
} catch (Exception e) {
Utils.debug.error("Client:sendRequest", e);
throw new SOAPBindingException(e.getMessage());
} finally {
if (os != null) {
try {
os.close();
} catch (Exception e) {
Utils.debug.error("Client:sendRequest", e);
}
}
}
Message resp = null;
InputStream is = null;
try {
is = con.getInputStream();
resp = new Message(is);
if (resp.getSOAPFault() != null) {
throw new SOAPFaultException(resp);
}
Utils.enforceProcessingRules(resp, req.getCorrelationHeader().getMessageID(), false);
} catch (IOException e) {
Utils.debug.error("Client:sendRequest", e);
throw new SOAPBindingException(e.getMessage());
} finally {
if (is != null) {
try {
is.close();
} catch (Exception e) {
Utils.debug.error("Client:sendRequest", e);
}
}
}
resp.setProtocol(con.getURL().getProtocol());
if (resp.getSecurityProfileType() != Message.ANONYMOUS && !SecurityUtils.verifyMessage(resp)) {
String msg = Utils.bundle.getString("cannotVerifySignature");
Utils.debug.error("Client.sendRequest: " + msg);
throw new SOAPBindingException(msg);
}
return resp;
}
use of javax.xml.transform.Transformer in project OpenAM by OpenRock.
the class XMLResourceExceptionHandler method write.
@Override
public void write(MessageContext context, AuthenticationException exception) {
Reject.ifNull(exception);
try {
ResourceException jre;
if (exception instanceof AuthenticationFailedException) {
jre = new PermanentException(Status.UNAUTHORIZED.getCode(), exception.getMessage(), null);
} else if (exception.getCause() instanceof ResourceException) {
jre = (ResourceException) exception.getCause();
} else {
LOGGER.error(exception.getMessage(), exception);
jre = new InternalServerErrorException("Authentication Failed", exception);
}
AuditTrail auditTrail = context.getAuditTrail();
List<Map<String, Object>> failureReasonList = auditTrail.getFailureReasons();
if (failureReasonList != null && !failureReasonList.isEmpty()) {
jre.setDetail(json(object(field("failureReasons", failureReasonList))));
}
Response response = context.getResponse();
response.setStatus(Status.valueOf(jre.getCode()));
context.<Response>getResponse().getHeaders().put(ContentTypeHeader.valueOf(MediaType.XML_UTF_8.toString()));
ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
Transformer transformer = XMLUtils.getTransformerFactory().newTransformer();
transformer.transform(new DOMSource(asXMLDOM(jre.includeCauseInJsonValue().toJsonValue().asMap())), new StreamResult(outputStream));
response.getEntity().setBytes(outputStream.toByteArray());
} catch (TransformerException e1) {
throw new IllegalStateException("Could not write XML to response", e1);
}
}
use of javax.xml.transform.Transformer in project opennms by OpenNMS.
the class XmlSystemReportFormatter method write.
@Override
public void write(final SystemReportPlugin plugin) {
if (!hasDisplayable(plugin))
return;
if (m_handler == null) {
try {
StreamResult streamResult = new StreamResult(getOutputStream());
SAXTransformerFactory tf = (SAXTransformerFactory) SAXTransformerFactory.newInstance();
m_handler = tf.newTransformerHandler();
Transformer serializer = m_handler.getTransformer();
serializer.setOutputProperty(OutputKeys.CDATA_SECTION_ELEMENTS, "entry");
m_handler.setResult(streamResult);
} catch (final Exception e) {
LOG.error("Unable to create XML stream writer.", e);
m_handler = null;
}
try {
m_handler.startDocument();
m_handler.startElement("", "", "systemReportPlugins", null);
} catch (final Exception e) {
LOG.warn("Unable to start document.", e);
m_handler = null;
}
}
if (m_handler == null) {
LOG.warn("Unable to write, no handler defined!");
return;
}
try {
AttributesImpl atts = new AttributesImpl();
atts.addAttribute("", "", "name", "CDATA", plugin.getName());
atts.addAttribute("", "", "description", "CDATA", plugin.getDescription());
m_handler.startElement("", "", "plugin", atts);
for (final Map.Entry<String, Resource> entry : plugin.getEntries().entrySet()) {
final boolean displayable = isDisplayable(entry.getValue());
atts = new AttributesImpl();
atts.addAttribute("", "", "key", "CDATA", entry.getKey());
if (!displayable) {
atts.addAttribute("", "", "skipped", "CDATA", "true");
}
m_handler.startElement("", "", "entry", atts);
if (displayable) {
final String value = getResourceText(entry.getValue());
if (value != null) {
m_handler.startCDATA();
m_handler.characters(value.toCharArray(), 0, value.length());
m_handler.endCDATA();
}
}
m_handler.endElement("", "", "entry");
}
m_handler.endElement("", "", "plugin");
} catch (final Exception e) {
LOG.warn("An error occurred while attempting to write XML data.", e);
}
}
use of javax.xml.transform.Transformer in project opennms by OpenNMS.
the class QuickBaseAPITest method XXXtestCreateLead.
public void XXXtestCreateLead() {
PrintWriter out = null;
try {
out = new PrintWriter(System.out);
out.println("Welcome to QuickBase\n");
QuickBaseClient qdb = createClient();
qdb.findDbByName("TPMG Support");
HashMap tables = (HashMap) qdb.grantedDBs(false, false, true);
if (tables == null) {
out.println("No tables belong to this user.");
}
Set tableNames = tables.keySet();
String tableName = "";
String tableDbid = "";
for (Iterator it = tableNames.iterator(); it.hasNext(); ) {
tableName = (String) it.next();
tableDbid = (String) tables.get(tableName);
out.println("Name: " + tableName + " DBID: " + tableDbid);
Document schema = qdb.getSchema(tableDbid);
Transformer transformer = TransformerFactory.newInstance().newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.transform(new DOMSource(schema), new StreamResult(out));
NodeList fields = schema.getElementsByTagName("field");
out.println("The QuickBase application " + tableName + " has " + fields.getLength() + " fields.");
out.println("The fields are listed below.");
for (int i = 0; i < fields.getLength(); i++) {
out.println("Field ID: " + fields.item(i).getAttributes().getNamedItem("id").getNodeValue());
out.println("Field Type: " + fields.item(i).getAttributes().getNamedItem("type").getNodeValue());
out.println("Field Label: " + fields.item(i).getChildNodes().item(0).getNodeValue());
}
}
} catch (QuickBaseException qdbe) {
System.err.println("Exception in main " + qdbe.toString() + " error code: " + qdbe.getErrorCode());
qdbe.printStackTrace();
} catch (Throwable e) {
System.err.println("Exception in main " + e.toString());
e.printStackTrace();
} finally {
if (null != out) {
out.flush();
out.close();
}
}
}
Aggregations