sfohart
Janeiro 31, 2011, 10:29am
#1
Olá, pessoal.
Eu estou aqui tentando fazer o caminho inverso da maioria de vocês. Enquanto todo mundo tá tentando enviar notas fiscas, cancelar, consultar, etc, etc… Eu estou aqui tentando receber (lá ele) estas notas fiscais e processá-las em background. Acontece que eu não faço a mínima idéia de como validar a assinatura digital dos lotes de RPS e das notas fiscais.
Estou usando Spring e JAXB. Alguém pode me ajudar?
Obrigado.
sfohart
Janeiro 31, 2011, 11:07am
#3
[quote=luiz_renato]sfohart,
Dá uma olhada neste link :
http://download.oracle.com/javase/tutorial/security/apisign/index.html
[/quote]
Eu estava tentando validar a assinatura digital contida em um lote RPS da seguinte forma:
public void validarAssinaturaDigital(EnviarLoteRpsEnvio raiz, SignatureType assinatura) {
/**
* Transformando os objetos de JAXB para W3C DOM
*/
try {
final JAXBContext context = JAXBContext.newInstance("br.com.webservicenfse.nfse.ws.bind");
final DocumentBuilderFactory builder = DocumentBuilderFactory.newInstance();
final DocumentBuilder docBuilder = builder.newDocumentBuilder();
final Document document = docBuilder.newDocument();
final Binder<Node> binder = context.createBinder();
binder.marshal(raiz, document);
Node signatureNode = binder.getXMLNode(assinatura);
XMLSignatureFactory xmlSignatureFactory = XMLSignatureFactory.getInstance("DOM");
DOMValidateContext valContext = new DOMValidateContext(new X509KeySelector(), signatureNode);
valContext.setProperty("javax.xml.crypto.dsig.cacheReference",Boolean.TRUE);
XMLSignature xmlSignature = xmlSignatureFactory.unmarshalXMLSignature(valContext);
boolean coreValidity = xmlSignature.validate(valContext);
if (coreValidity == false) {
System.err.println("Signature failed core validation");
boolean sv = xmlSignature.getSignatureValue().validate(valContext);
System.out.println("signature validation status: " + sv);
if (sv == false) {
// Check the validation status of each Reference.
Iterator i = xmlSignature.getSignedInfo().getReferences().iterator();
for (int j = 0; i.hasNext(); j++) {
Reference reference = ((Reference) i.next());
boolean refValid = reference.validate(valContext);
System.out.println("ref[" + j + "] validity status: " + refValid);
}
}
} else {
System.out.println("Signature passed core validation");
}
} catch (JAXBException e) {
e.printStackTrace();
} catch (ParserConfigurationException e) {
e.printStackTrace();
} catch (MarshalException e) {
e.printStackTrace();
} catch (XMLSignatureException e) {
e.printStackTrace();
}
}
Algumas vezes ele imprimia no console que a assinatura digital não era válida (compreensivel), mas em outras ocasiões, ele não conseguia resolver o id correspondente ao elemento atribuído àquela assinatura.
O xml que representa o lote de rps em questão (apenas para teste) é o seguinte:
<?xml version="1.0" encoding="UTF-8"?>
<EnviarLoteRpsEnvio xmlns="http://www.abrasf.org.br/ABRASF/arquivos/nfse.xsd">
<LoteRps Id="lote" versao="1.00">
<NumeroLote>1</NumeroLote>
<Cnpj>99999999000191</Cnpj>
<InscricaoMunicipal>1733160024</InscricaoMunicipal>
<QuantidadeRps>2</QuantidadeRps>
<ListaRps>
<Rps>
<InfRps Id="rps:1ABCDZ">
<IdentificacaoRps>
<Numero>1</Numero>
<Serie>ABCDZ</Serie>
<Tipo>1</Tipo>
</IdentificacaoRps>
<DataEmissao>2009-06-16T21:00:00</DataEmissao>
<NaturezaOperacao>1</NaturezaOperacao>
<RegimeEspecialTributacao>6</RegimeEspecialTributacao>
<OptanteSimplesNacional>1</OptanteSimplesNacional>
<IncentivadorCultural>2</IncentivadorCultural>
<Status>1</Status>
<Servico>
<Valores>
<ValorServicos>1000.00</ValorServicos>
<ValorDeducoes>10.00</ValorDeducoes>
<ValorPis>10.00</ValorPis>
<ValorCofins>10.00</ValorCofins>
<ValorInss>10.00</ValorInss>
<ValorIr>10.00</ValorIr>
<ValorCsll>10.00</ValorCsll>
<IssRetido>1</IssRetido>
<ValorIss>10.00</ValorIss>
<OutrasRetencoes>10.00</OutrasRetencoes>
<Aliquota>5</Aliquota>
<DescontoIncondicionado>10.00</DescontoIncondicionado>
<DescontoCondicionado>10.00</DescontoCondicionado>
</Valores>
<ItemListaServico>11.01</ItemListaServico>
<CodigoTributacaoMunicipio>522310000
</CodigoTributacaoMunicipio>
<Discriminacao>Teste.</Discriminacao>
<CodigoMunicipio>3106200</CodigoMunicipio>
</Servico>
<Prestador>
<Cnpj>99999999000191</Cnpj>
<InscricaoMunicipal>1733160024</InscricaoMunicipal>
</Prestador>
<Tomador>
<IdentificacaoTomador>
<CpfCnpj>
<Cnpj>99999999000191</Cnpj>
</CpfCnpj>
<InscricaoMunicipal>1733160032</InscricaoMunicipal>
</IdentificacaoTomador>
<RazaoSocial>INSCRICAO DE TESTE SIATU - D'AGUA -PAULINO'S
</RazaoSocial>
<Endereco>
<Endereco>DA BAHIA</Endereco>
<Numero>200</Numero>
<Complemento>ANDAR 14</Complemento>
<Bairro>CENTRO</Bairro>
<CodigoMunicipio>3106200</CodigoMunicipio>
<Uf>MG</Uf>
<Cep>30160010</Cep>
</Endereco>
</Tomador>
<IntermediarioServico>
<RazaoSocial>INSCRICAO DE TESTE SIATU - D'AGUA -PAULINO'S
</RazaoSocial>
<CpfCnpj>
<Cnpj>99999999000191</Cnpj>
</CpfCnpj>
<InscricaoMunicipal>8041700010</InscricaoMunicipal>
</IntermediarioServico>
<ConstrucaoCivil>
<CodigoObra>1234</CodigoObra>
<Art>1234</Art>
</ConstrucaoCivil>
</InfRps>
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#" Id="Ass_rps:1ABCDZ">
<SignedInfo>
<CanonicalizationMethod
Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"></CanonicalizationMethod>
<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"></SignatureMethod>
<Reference URI="#rps:1ABCDZ">
<Transforms>
<Transform
Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"></Transform>
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod>
<DigestValue>mMyQLAm4psxx52kaD8Jlta3ouPM=
</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>
qBKfaNz6RbsYUxCOrjGZ9zrdgiGL7QSBxjlhYRlKDNlDERlDWvM8gi28yus8FoUb0v2CTKKIBz0t
zfqxgk60rke4YCMkTzdWfpm7ofMIhYC9VHqbWdInC20znOKygJy5hyIx6JBoyXbejnw/0KF+2E1P
1ZehqXJWZqY+KPaIGAY=
</SignatureValue>
<KeyInfo>
<X509Data>
<X509Certificate>
MIIE7DCCA9SgAwIBAgIQZMlLC9ZEsHWsnvJNdMI2yzANBgkqhkiG9w0BAQUFADBqMQswCQYDVQQG
EwJCUjETMBEGA1UEChMKSUNQLUJyYXNpbDEsMCoGA1UECxMjU2VjcmV0YXJpYSBkYSBSZWNlaXRh
IEZlZGVyYWwgLSBTUkYxGDAWBgNVBAMTD0FDIFBST0RFTUdFIFNSRjAeFw0wNzEwMzEwMDAwMDBa
Fw0xMDEwMzAyMzU5NTlaMIGQMQswCQYDVQQGEwJCUjETMBEGA1UEChQKSUNQLUJyYXNpbDEqMCgG
A1UECxQhU2VjcmV0YXJpYSBkYSBSZWNlaXRhIEZlZGVyYWwtU1JGMRIwEAYDVQQLFAlTUkYgZS1D
UEYxLDAqBgNVBAMTI0VER0FSIERPIENBUk1PIEZFUlJFSVJBOjQzMjYwMTUyNjg3MIGfMA0GCSqG
SIb3DQEBAQUAA4GNADCBiQKBgQC6M+9XT5KLQN3IH8mAr+S6vxiochY/EwF8EhtNoxPTYl+zr0Dh
+eZsRG31bN410nr2OrwncrRorMK8Ngq+j3FnNF0nIMigaaa5NAEfIk3Yy4kuqrTUZBpqUJvCqc3m
kF3C3XD0MTmtbVTWCvYIk+qn3t5ShHyMnQcuah5Q0ItSbQIDAQABo4IB6TCCAeUwgZUGA1UdEQSB
jTCBiqA9BgVgTAEDAaA0BDIyMTAzMTk2NDQzMjYwMTUyNjg3MDAwMDAwMDAwMDAwMDAwMDBNLTI4
ODQwODVTU1BNR6AXBgVgTAEDBqAOBAwwMDAwMDAwMDAwMDCgHgYFYEwBAwWgFQQTMDAwMDAwMDAw
MDAwMDAwMDAwMIEQZWRnYXJAcGJoLmdvdi5icjAJBgNVHRMEAjAAMF8GA1UdHwRYMFYwVKBSoFCG
Tmh0dHA6Ly9pY3AtYnJhc2lsLmNlcnRpc2lnbi5jb20uYnIvcmVwb3NpdG9yaW8vbGNyL0FDUFJP
REVNR0VTUkYvTGF0ZXN0Q1JMLmNybDAfBgNVHSMEGDAWgBTdO9vtjZcRRUMBQ020Ev0O7niacDAO
BgNVHQ8BAf8EBAMCBeAwVQYDVR0gBE4wTDBKBgZgTAECAxQwQDA+BggrBgEFBQcCARYyaHR0cDov
L2ljcC1icmFzaWwuY2VydGlzaWduLmNvbS5ici9yZXBvc2l0b3Jpby9kcGMwHQYDVR0lBBYwFAYI
KwYBBQUHAwQGCCsGAQUFBwMCMDgGCCsGAQUFBwEBBCwwKjAoBggrBgEFBQcwAYYcaHR0cDovL29j
c3AuY2VydGlzaWduLmNvbS5icjANBgkqhkiG9w0BAQUFAAOCAQEAYFcjZj4lGVEREHBaHtcRletW
S6/mvpkxmodwj3ele5yXsxuqSZd7ebHbKewXx7gkyaWFkFAxFanQhls2tYKjg6haqt2b0AO1Fsit
VIHkMcxRwkU9G+1ec8yfdxymra2VdXazkxuvqKABgxkqKnaFdHjje7cjWDgwparymH64mTlHkSQz
59GutJW0xfwBHcMGx0/9/iIug6pfMQivWf0NMVpFNzxO5ZNPEuOeBhVDxQr4+KB+4B9xDai/3J6f
42UNbSy+z3xuB0K8/7V7BsFUYOYFSNnBrXhvbvXtZOtteX65V0r1+RJJX5OK+PAPhZ57T1LEmHMg
gdo5kli3Nr1KFQ==
</X509Certificate>
</X509Data>
</KeyInfo>
</Signature>
</Rps>
<Rps>
<InfRps Id="rps:2ABCDZ">
<IdentificacaoRps>
<Numero>2</Numero>
<Serie>ABCDZ</Serie>
<Tipo>1</Tipo>
</IdentificacaoRps>
<DataEmissao>2009-06-16T21:00:00</DataEmissao>
<NaturezaOperacao>1</NaturezaOperacao>
<RegimeEspecialTributacao>6</RegimeEspecialTributacao>
<OptanteSimplesNacional>1</OptanteSimplesNacional>
<IncentivadorCultural>2</IncentivadorCultural>
<Status>1</Status>
<Servico>
<Valores>
<ValorServicos>1000.00</ValorServicos>
<ValorDeducoes>10.00</ValorDeducoes>
<ValorPis>10.00</ValorPis>
<ValorCofins>10.00</ValorCofins>
<ValorInss>10.00</ValorInss>
<ValorIr>10.00</ValorIr>
<ValorCsll>10.00</ValorCsll>
<IssRetido>1</IssRetido>
<ValorIss>10.00</ValorIss>
<OutrasRetencoes>10.00</OutrasRetencoes>
<Aliquota>5</Aliquota>
<DescontoIncondicionado>10.00</DescontoIncondicionado>
<DescontoCondicionado>10.00</DescontoCondicionado>
</Valores>
<ItemListaServico>11.01</ItemListaServico>
<CodigoTributacaoMunicipio>522310000
</CodigoTributacaoMunicipio>
<Discriminacao>Teste.</Discriminacao>
<CodigoMunicipio>3106200</CodigoMunicipio>
</Servico>
<Prestador>
<Cnpj>99999999000191</Cnpj>
<InscricaoMunicipal>1733160024</InscricaoMunicipal>
</Prestador>
<Tomador>
<IdentificacaoTomador>
<CpfCnpj>
<Cnpj>99999999000191</Cnpj>
</CpfCnpj>
<InscricaoMunicipal>1733160032</InscricaoMunicipal>
</IdentificacaoTomador>
<RazaoSocial>INSCRICAO DE TESTE SIATU - D'AGUA -PAULINO'S
</RazaoSocial>
<Endereco>
<Endereco>DA BAHIA</Endereco>
<Numero>200</Numero>
<Complemento>ANDAR 14</Complemento>
<Bairro>CENTRO</Bairro>
<CodigoMunicipio>3106200</CodigoMunicipio>
<Uf>MG</Uf>
<Cep>30160010</Cep>
</Endereco>
</Tomador>
<IntermediarioServico>
<RazaoSocial>INSCRICAO DE TESTE SIATU - D'AGUA -PAULINO'S
</RazaoSocial>
<CpfCnpj>
<Cnpj>99999999000191</Cnpj>
</CpfCnpj>
<InscricaoMunicipal>8041700010</InscricaoMunicipal>
</IntermediarioServico>
<ConstrucaoCivil>
<CodigoObra>1234</CodigoObra>
<Art>1234</Art>
</ConstrucaoCivil>
</InfRps>
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#" Id="Ass_rps:1ABCDZ">
<SignedInfo>
<CanonicalizationMethod
Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"></CanonicalizationMethod>
<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"></SignatureMethod>
<Reference URI="#rps:2ABCDZ">
<Transforms>
<Transform
Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"></Transform>
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod>
<DigestValue>pcpHZUpTtAfjwEVpnBW5qzDTHtc=
</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>
lunW4H0coMPXsBK/+eMkivq6IaEbtkHNRjNQrcZ/pB1Q+SzQK4/MNU+Ohbd3qk+AZKEF1L2Hr5tM
xYqzbZpSxiSZx4+Iu5WK6E2g4o60UYPPhmrEliaY6m1KC1w+7S1a67brTgikXHQQ7QKTR32WxMyO
TFfLYofoJRfALGFg91s=
</SignatureValue>
<KeyInfo>
<X509Data>
<X509Certificate>
MIIE7DCCA9SgAwIBAgIQZMlLC9ZEsHWsnvJNdMI2yzANBgkqhkiG9w0BAQUFADBqMQswCQYDVQQG
EwJCUjETMBEGA1UEChMKSUNQLUJyYXNpbDEsMCoGA1UECxMjU2VjcmV0YXJpYSBkYSBSZWNlaXRh
IEZlZGVyYWwgLSBTUkYxGDAWBgNVBAMTD0FDIFBST0RFTUdFIFNSRjAeFw0wNzEwMzEwMDAwMDBa
Fw0xMDEwMzAyMzU5NTlaMIGQMQswCQYDVQQGEwJCUjETMBEGA1UEChQKSUNQLUJyYXNpbDEqMCgG
A1UECxQhU2VjcmV0YXJpYSBkYSBSZWNlaXRhIEZlZGVyYWwtU1JGMRIwEAYDVQQLFAlTUkYgZS1D
UEYxLDAqBgNVBAMTI0VER0FSIERPIENBUk1PIEZFUlJFSVJBOjQzMjYwMTUyNjg3MIGfMA0GCSqG
SIb3DQEBAQUAA4GNADCBiQKBgQC6M+9XT5KLQN3IH8mAr+S6vxiochY/EwF8EhtNoxPTYl+zr0Dh
+eZsRG31bN410nr2OrwncrRorMK8Ngq+j3FnNF0nIMigaaa5NAEfIk3Yy4kuqrTUZBpqUJvCqc3m
kF3C3XD0MTmtbVTWCvYIk+qn3t5ShHyMnQcuah5Q0ItSbQIDAQABo4IB6TCCAeUwgZUGA1UdEQSB
jTCBiqA9BgVgTAEDAaA0BDIyMTAzMTk2NDQzMjYwMTUyNjg3MDAwMDAwMDAwMDAwMDAwMDBNLTI4
ODQwODVTU1BNR6AXBgVgTAEDBqAOBAwwMDAwMDAwMDAwMDCgHgYFYEwBAwWgFQQTMDAwMDAwMDAw
MDAwMDAwMDAwMIEQZWRnYXJAcGJoLmdvdi5icjAJBgNVHRMEAjAAMF8GA1UdHwRYMFYwVKBSoFCG
Tmh0dHA6Ly9pY3AtYnJhc2lsLmNlcnRpc2lnbi5jb20uYnIvcmVwb3NpdG9yaW8vbGNyL0FDUFJP
REVNR0VTUkYvTGF0ZXN0Q1JMLmNybDAfBgNVHSMEGDAWgBTdO9vtjZcRRUMBQ020Ev0O7niacDAO
BgNVHQ8BAf8EBAMCBeAwVQYDVR0gBE4wTDBKBgZgTAECAxQwQDA+BggrBgEFBQcCARYyaHR0cDov
L2ljcC1icmFzaWwuY2VydGlzaWduLmNvbS5ici9yZXBvc2l0b3Jpby9kcGMwHQYDVR0lBBYwFAYI
KwYBBQUHAwQGCCsGAQUFBwMCMDgGCCsGAQUFBwEBBCwwKjAoBggrBgEFBQcwAYYcaHR0cDovL29j
c3AuY2VydGlzaWduLmNvbS5icjANBgkqhkiG9w0BAQUFAAOCAQEAYFcjZj4lGVEREHBaHtcRletW
S6/mvpkxmodwj3ele5yXsxuqSZd7ebHbKewXx7gkyaWFkFAxFanQhls2tYKjg6haqt2b0AO1Fsit
VIHkMcxRwkU9G+1ec8yfdxymra2VdXazkxuvqKABgxkqKnaFdHjje7cjWDgwparymH64mTlHkSQz
59GutJW0xfwBHcMGx0/9/iIug6pfMQivWf0NMVpFNzxO5ZNPEuOeBhVDxQr4+KB+4B9xDai/3J6f
42UNbSy+z3xuB0K8/7V7BsFUYOYFSNnBrXhvbvXtZOtteX65V0r1+RJJX5OK+PAPhZ57T1LEmHMg
gdo5kli3Nr1KFQ==
</X509Certificate>
</X509Data>
</KeyInfo>
</Signature>
</Rps>
</ListaRps>
</LoteRps>
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#" Id="Ass_lote">
<SignedInfo>
<CanonicalizationMethod
Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments"></CanonicalizationMethod>
<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"></SignatureMethod>
<Reference URI="#lote">
<Transforms>
<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"></Transform>
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod>
<DigestValue>n42EhtzDSnZ071g+44ZMBCc74UQ=
</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>
pQyeXnJ2S9KyUJ1BE3k3PZuDpk7WkD2nMPLoELSLJeNBe9TwmLhImsIUS4inAUreuTsjfrs2BUmC
hN6jPA0/1cSR0GbblLsHFN+IwPE2dnPN/u0vIOmsan4MuW1OnlH6KexmDHRj/uFwjoXfSJ0JJE1u
9bYdbsp5LGlFuc//CCQ=
</SignatureValue>
<KeyInfo>
<X509Data>
<X509Certificate>
MIIE7DCCA9SgAwIBAgIQZMlLC9ZEsHWsnvJNdMI2yzANBgkqhkiG9w0BAQUFADBqMQswCQYDVQQG
EwJCUjETMBEGA1UEChMKSUNQLUJyYXNpbDEsMCoGA1UECxMjU2VjcmV0YXJpYSBkYSBSZWNlaXRh
IEZlZGVyYWwgLSBTUkYxGDAWBgNVBAMTD0FDIFBST0RFTUdFIFNSRjAeFw0wNzEwMzEwMDAwMDBa
Fw0xMDEwMzAyMzU5NTlaMIGQMQswCQYDVQQGEwJCUjETMBEGA1UEChQKSUNQLUJyYXNpbDEqMCgG
A1UECxQhU2VjcmV0YXJpYSBkYSBSZWNlaXRhIEZlZGVyYWwtU1JGMRIwEAYDVQQLFAlTUkYgZS1D
UEYxLDAqBgNVBAMTI0VER0FSIERPIENBUk1PIEZFUlJFSVJBOjQzMjYwMTUyNjg3MIGfMA0GCSqG
SIb3DQEBAQUAA4GNADCBiQKBgQC6M+9XT5KLQN3IH8mAr+S6vxiochY/EwF8EhtNoxPTYl+zr0Dh
+eZsRG31bN410nr2OrwncrRorMK8Ngq+j3FnNF0nIMigaaa5NAEfIk3Yy4kuqrTUZBpqUJvCqc3m
kF3C3XD0MTmtbVTWCvYIk+qn3t5ShHyMnQcuah5Q0ItSbQIDAQABo4IB6TCCAeUwgZUGA1UdEQSB
jTCBiqA9BgVgTAEDAaA0BDIyMTAzMTk2NDQzMjYwMTUyNjg3MDAwMDAwMDAwMDAwMDAwMDBNLTI4
ODQwODVTU1BNR6AXBgVgTAEDBqAOBAwwMDAwMDAwMDAwMDCgHgYFYEwBAwWgFQQTMDAwMDAwMDAw
MDAwMDAwMDAwMIEQZWRnYXJAcGJoLmdvdi5icjAJBgNVHRMEAjAAMF8GA1UdHwRYMFYwVKBSoFCG
Tmh0dHA6Ly9pY3AtYnJhc2lsLmNlcnRpc2lnbi5jb20uYnIvcmVwb3NpdG9yaW8vbGNyL0FDUFJP
REVNR0VTUkYvTGF0ZXN0Q1JMLmNybDAfBgNVHSMEGDAWgBTdO9vtjZcRRUMBQ020Ev0O7niacDAO
BgNVHQ8BAf8EBAMCBeAwVQYDVR0gBE4wTDBKBgZgTAECAxQwQDA+BggrBgEFBQcCARYyaHR0cDov
L2ljcC1icmFzaWwuY2VydGlzaWduLmNvbS5ici9yZXBvc2l0b3Jpby9kcGMwHQYDVR0lBBYwFAYI
KwYBBQUHAwQGCCsGAQUFBwMCMDgGCCsGAQUFBwEBBCwwKjAoBggrBgEFBQcwAYYcaHR0cDovL29j
c3AuY2VydGlzaWduLmNvbS5icjANBgkqhkiG9w0BAQUFAAOCAQEAYFcjZj4lGVEREHBaHtcRletW
S6/mvpkxmodwj3ele5yXsxuqSZd7ebHbKewXx7gkyaWFkFAxFanQhls2tYKjg6haqt2b0AO1Fsit
VIHkMcxRwkU9G+1ec8yfdxymra2VdXazkxuvqKABgxkqKnaFdHjje7cjWDgwparymH64mTlHkSQz
59GutJW0xfwBHcMGx0/9/iIug6pfMQivWf0NMVpFNzxO5ZNPEuOeBhVDxQr4+KB+4B9xDai/3J6f
42UNbSy+z3xuB0K8/7V7BsFUYOYFSNnBrXhvbvXtZOtteX65V0r1+RJJX5OK+PAPhZ57T1LEmHMg
gdo5kli3Nr1KFQ==
</X509Certificate>
</X509Data>
</KeyInfo>
</Signature>
</EnviarLoteRpsEnvio>
Caused by: com.sun.org.apache.xml.internal.security.utils.resolver.ResourceResolverException: Cannot resolve element with ID lote
É essa a minha atual dificuldade
sfohart
Fevereiro 1, 2011, 11:35am
#4
Troquei isso
final JAXBContext context = JAXBContext.newInstance("br.com.webservicenfse.nfse.ws.bind");
Por isso
final JAXBContext context = JAXBContext.newInstance(EnviarLoteRpsEnvio.class);
Adicionei algumas propriedades ao marshaller
//importante não formatar o XML de saída para não invalidar a assinatura digital
marshaller.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.FALSE);
E aparentemente esses erros acima sumiram. Mas eu ainda estou com dúvidas…
Digamos que eu tenha um arquivo xml de lotes rps’s com as tags abaixo:
<?xml version="1.0" encoding="utf-8"?>
<EnviarLoteRpsEnvio xmlns="http://www.abrasf.org.br/ABRASF/arquivos/nfse.xsd">
...
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
</Signature>
...
</EnviarLoteRpsEnvio>
Faço o unmarshalling do lado do cliente, envio os dados para o servidor, faço o marshalling do lado do servidor e tento validar os dados. Acontece que a saída do marshalling no servidor é como abaixo:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<EnviarLoteRpsEnvio xmlns="http://www.abrasf.org.br/ABRASF/arquivos/nfse.xsd" xmlns:ns2="http://www.w3.org/2000/09/xmldsig#">
...
<ns2:Signature>
</ns2:Signature>
...
</EnviarLoteRpsEnvio>
E eu acredito que essas diferenças estejam invalidando o conteudo da assinatura digital… Alguém me ajuda, por favor?
muri1o
Abril 18, 2012, 3:15pm
#5
Olá,
Você conseguiu validar o lote de RPS?