Search in sources :

Example 1 with ValidatorErrorHandler

use of org.apache.camel.processor.validation.ValidatorErrorHandler in project camel by apache.

the class XmlSignerProcessor method getMessageBodyNode.

protected Node getMessageBodyNode(Message message) throws Exception {
    //NOPMD
    InputStream is = message.getMandatoryBody(InputStream.class);
    Boolean isPlainText = isPlainText(message);
    Node node;
    if (isPlainText != null && isPlainText) {
        node = getTextNode(message, is);
    } else {
        ValidatorErrorHandler errorHandler = new DefaultValidationErrorHandler();
        Schema schema = getSchemaForSigner(message, errorHandler);
        Document doc = parseInput(is, getConfiguration().getDisallowDoctypeDecl(), schema, errorHandler);
        // throws ValidationException
        errorHandler.handleErrors(message.getExchange(), schema, null);
        node = doc.getDocumentElement();
        LOG.debug("Root element of document to be signed: {}", node);
    }
    return node;
}
Also used : InputStream(java.io.InputStream) Node(org.w3c.dom.Node) Schema(javax.xml.validation.Schema) ValidatorErrorHandler(org.apache.camel.processor.validation.ValidatorErrorHandler) DefaultValidationErrorHandler(org.apache.camel.processor.validation.DefaultValidationErrorHandler) Document(org.w3c.dom.Document)

Example 2 with ValidatorErrorHandler

use of org.apache.camel.processor.validation.ValidatorErrorHandler in project camel by apache.

the class XmlVerifierProcessor method parseInput.

protected Document parseInput(InputStream is, Message message) throws Exception {
    //NOPMD
    try {
        ValidatorErrorHandler errorHandler = new DefaultValidationErrorHandler();
        Schema schema = getSchema(message);
        DocumentBuilder db = XmlSignatureHelper.newDocumentBuilder(getConfiguration().getDisallowDoctypeDecl(), schema);
        db.setErrorHandler(errorHandler);
        Document doc = db.parse(is);
        // throws ValidationException
        errorHandler.handleErrors(message.getExchange(), schema, null);
        return doc;
    } catch (SAXException e) {
        throw new XmlSignatureFormatException("Message has wrong format, it is not a XML signature document. Check the sent message.", e);
    }
}
Also used : DocumentBuilder(javax.xml.parsers.DocumentBuilder) XmlSignatureFormatException(org.apache.camel.component.xmlsecurity.api.XmlSignatureFormatException) Schema(javax.xml.validation.Schema) ValidatorErrorHandler(org.apache.camel.processor.validation.ValidatorErrorHandler) DefaultValidationErrorHandler(org.apache.camel.processor.validation.DefaultValidationErrorHandler) Document(org.w3c.dom.Document) SAXException(org.xml.sax.SAXException)

Aggregations

Schema (javax.xml.validation.Schema)2 DefaultValidationErrorHandler (org.apache.camel.processor.validation.DefaultValidationErrorHandler)2 ValidatorErrorHandler (org.apache.camel.processor.validation.ValidatorErrorHandler)2 Document (org.w3c.dom.Document)2 InputStream (java.io.InputStream)1 DocumentBuilder (javax.xml.parsers.DocumentBuilder)1 XmlSignatureFormatException (org.apache.camel.component.xmlsecurity.api.XmlSignatureFormatException)1 Node (org.w3c.dom.Node)1 SAXException (org.xml.sax.SAXException)1