Полученный сертификат на подпись имеет "& # 13", как их удалить? - PullRequest
0 голосов
/ 17 января 2019

Я использую xades4j, чтобы спеть xml, все работает отлично. Но в полученном XML сертификат X509 выглядит примерно так:

<ds:X509Certificate>  MIIDUjCCAjqgAwIBAgIIYFxFM0GPYwowDQYJKoZIhvcNAQELBQAwKTEMMAoGA1UEAwwDRkVMMQww&#13;
    CgYDVQQKDANTQVQxCzAJBgNVBAYTAkdUMB4XDTE4MTIxMDE1MTQyOFoXDTIwMTIwOTE1MTQyOFow&#13;
    KDERMA8GA1UEAwwIODI1NzYyNTQxEzARBgNVBAoMCnNhdC5nb2IuZ3QwggEiMA0GCSqGSIb3DQEB&#13;
    AQUAA4IBDwAwggEKAoIBAQC6QTYY7yGtmikBaV6pNVee6WzNBToIr3jlFikbvZI4JD+4p0LJqten&#13;
</ds:X509Certificate>

Как мне удалить "& # 13;" от этого?

Вот метод, который выполняет подпись:

@Override
    public DOMSource generarFirmaDigitalParaXML(Document xml, KeyingDataProvider keyingDataProvider, String nombreArchivoXmlOriginal) {
    final Element rootElement = xml.getDocumentElement();
    Element elementoAFirmar = null;
    NodeList nodeList = xml.getElementsByTagName("dte:DatosEmision");

    DOMSource source = null;
    int lenght = nodeList.getLength();
    for (int i = 0; i < lenght; i++) {
        Node nNode = nodeList.item(i);
        elementoAFirmar = (Element) nNode;
    }

    XadesBesSigningProfile profile = new XadesBesSigningProfile(keyingDataProvider);
    try {
        XadesSigner signer = profile.newSigner();
        String atributoUtilizado = seleccionarAttributoComoId(elementoAFirmar, "ID");

        if (atributoUtilizado != null) {
            DataObjectDesc obj = new DataObjectReference("#" + elementoAFirmar.getAttribute(atributoUtilizado))
                    .withTransform(new EnvelopedSignatureTransform());
            SignedDataObjects dataObjs = new SignedDataObjects().withSignedDataObject(obj);
            signer.sign(dataObjs, rootElement);
            xml.setXmlStandalone(true);
            source = new DOMSource(xml);
        } else {
            throw new Exception("Atributo no encontrado en el XML");
        }
    } catch (Exception e) {
        bitacora.log(Level.SEVERE, LOGGER, bitacora.obtenerStackTrace(e), true);
    }
    return source;
}
...