Hi, thanks for reply.

I tried to output some text in org.apache.poi.poifs.crypt.dsig.
SignatureInfoInpo.preSign() method (just before it fails after servlet
reloads) with:

    System.out.println("after preSign: provider: "+provider);
    Iterator<Object> iterProv = provider.keySet().iterator();
    while (iterProv.hasNext()) {
        Object key = iterProv.next();
        Object val = provider.get(key);
        System.out.println("  Key: "+key+" Val: "+val);
    }
    Provider[] secProvs = Security.getProviders();
    for (Provider p : secProvs) {
        System.out.println("pName: "+p.getName()+" pInfo: "+p.getInfo()+"
pVersion: "+p.getVersion());
    }

and output (print is at the end of email) is the same when servlet is
started for the first time (when it works) and after servlet gets reloaded
(when it still crashes).
Also in method
org.apache.poi.poifs.crypt.dsig.SignatureInfoInpo.initXmlProvider I changed
so provider gets initialized every time (text in output Registering...
XmlProviderInitSingleton):
        provider = new XmlProviderInitSingleton().findProvider();

    private XmlProviderInitSingleton() {
        try {
            Init.init();
            RelationshipTransformService.registerDsigProvider();
            CryptoFunctions.registerBouncyCastle();
            System.out.println("Registering... XmlProviderInitSingleton");
        } catch (Exception e) {
            throw new RuntimeException("Xml & BouncyCastle-Provider
initialization failed", e);
        }
    }

Best regards, Blaž

------------------------- OUTPUT ---------------------

Registering... XmlProviderInitSingleton
Registering... XmlProviderInitSingleton
after preSign: provider: ApacheXMLDSig version 2.22
  Key: Alg.Alias.TransformService.ENVELOPED Val:
http://www.w3.org/2000/09/xmldsig#enveloped-signature
  Key: Alg.Alias.TransformService.XSLT Val:
http://www.w3.org/TR/1999/REC-xslt-19991116
  Key: Provider.id name Val: ApacheXMLDSig
  Key: TransformService.http://www.w3.org/TR/1999/REC-xslt-19991116
MechanismType Val: DOM
  Key: TransformService.http://www.w3.org/2006/12/xml-c14n11#WithComments
Val: org.apache.jcp.xml.dsig.internal.dom.DOMCanonicalXMLC14N11Method
  Key: TransformService.http://www.w3.org/2001/10/xml-exc-c14n#WithComments
MechanismType Val: DOM
  Key: TransformService.http://www.w3.org/2000/09/xmldsig#base64
MechanismType Val: DOM
  Key: TransformService.http://www.w3.org/2006/12/xml-c14n11 Val:
org.apache.jcp.xml.dsig.internal.dom.DOMCanonicalXMLC14N11Method
  Key: TransformService.http://www.w3.org/2002/06/xmldsig-filter2
MechanismType Val: DOM
  Key: TransformService.http://www.w3.org/2001/10/xml-exc-c14n#
MechanismType Val: DOM
  Key: TransformService.http://www.w3.org/TR/1999/REC-xpath-19991116
MechanismType Val: DOM
  Key: TransformService.
http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments MechanismType
Val: DOM
  Key: TransformService.http://www.w3.org/TR/2001/REC-xml-c14n-20010315
Val: org.apache.jcp.xml.dsig.internal.dom.DOMCanonicalXMLC14NMethod
  Key: Provider.id version Val: 2.22
  Key: KeyInfoFactory.DOM Val:
org.apache.jcp.xml.dsig.internal.dom.DOMKeyInfoFactory
  Key: Alg.Alias.TransformService.XPATH Val:
http://www.w3.org/TR/1999/REC-xpath-19991116
  Key: TransformService.
http://www.w3.org/2000/09/xmldsig#enveloped-signature Val:
org.apache.jcp.xml.dsig.internal.dom.DOMEnvelopedTransform
  Key: Alg.Alias.TransformService.BASE64 Val:
http://www.w3.org/2000/09/xmldsig#base64
  Key: TransformService.http://www.w3.org/2006/12/xml-c14n11 MechanismType
Val: DOM
  Key: Alg.Alias.TransformService.EXCLUSIVE_WITH_COMMENTS Val:
http://www.w3.org/2001/10/xml-exc-c14n#WithComments
  Key: TransformService.http://www.w3.org/TR/2001/REC-xml-c14n-20010315
MechanismType Val: DOM
  Key: Provider.id info Val: Apache Santuario XMLDSig (DOM
XMLSignatureFactory; DOM KeyInfoFactory; C14N 1.0, C14N 1.1, Exclusive
C14N, Base64, Enveloped, XPath, XPath2, XSLT TransformServices)
  Key: TransformService.
http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments Val:
org.apache.jcp.xml.dsig.internal.dom.DOMCanonicalXMLC14NMethod
  Key: Alg.Alias.TransformService.INCLUSIVE Val:
http://www.w3.org/TR/2001/REC-xml-c14n-20010315
  Key: Alg.Alias.TransformService.XPATH2 Val:
http://www.w3.org/2002/06/xmldsig-filter2
  Key: TransformService.
http://www.w3.org/2000/09/xmldsig#enveloped-signature MechanismType Val: DOM
  Key: TransformService.http://www.w3.org/TR/1999/REC-xslt-19991116 Val:
org.apache.jcp.xml.dsig.internal.dom.DOMXSLTTransform
  Key: TransformService.http://www.w3.org/TR/1999/REC-xpath-19991116 Val:
org.apache.jcp.xml.dsig.internal.dom.DOMXPathTransform
  Key: Alg.Alias.TransformService.EXCLUSIVE Val:
http://www.w3.org/2001/10/xml-exc-c14n#
  Key: TransformService.http://www.w3.org/2006/12/xml-c14n11#WithComments
MechanismType Val: DOM
  Key: TransformService.http://www.w3.org/2001/10/xml-exc-c14n# Val:
org.apache.jcp.xml.dsig.internal.dom.DOMExcC14NMethod
  Key: TransformService.http://www.w3.org/2000/09/xmldsig#base64 Val:
org.apache.jcp.xml.dsig.internal.dom.DOMBase64Transform
  Key: XMLSignatureFactory.DOM Val:
org.apache.jcp.xml.dsig.internal.dom.DOMXMLSignatureFactory
  Key: TransformService.http://www.w3.org/2002/06/xmldsig-filter2 Val:
org.apache.jcp.xml.dsig.internal.dom.DOMXPathFilter2Transform
  Key: Provider.id className Val:
org.apache.jcp.xml.dsig.internal.dom.XMLDSigRI
  Key: TransformService.http://www.w3.org/2001/10/xml-exc-c14n#WithComments
Val: org.apache.jcp.xml.dsig.internal.dom.DOMExcC14NMethod
  Key: Alg.Alias.TransformService.INCLUSIVE_WITH_COMMENTS Val:
http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments
pName: SUN pInfo: SUN (DSA key/parameter generation; DSA signing; SHA-1,
MD5 digests; SecureRandom; X.509 certificates; JKS & DKS keystores; PKIX
CertPathValidator; PKIX CertPathBuilder; LDAP, Collection CertStores,
JavaPolicy Policy; JavaLoginConfig Configuration) pVersion: 1.8
pName: SunRsaSign pInfo: Sun RSA signature provider pVersion: 1.8
pName: SunEC pInfo: Sun Elliptic Curve provider (EC, ECDSA, ECDH) pVersion:
1.8
pName: SunJSSE pInfo: Sun JSSE provider(PKCS12, SunX509/PKIX key/trust
factories, SSLv3/TLSv1/TLSv1.1/TLSv1.2/TLSv1.3) pVersion: 1.8
pName: SunJCE pInfo: SunJCE Provider (implements RSA, DES, Triple DES, AES,
Blowfish, ARCFOUR, RC2, PBE, Diffie-Hellman, HMAC) pVersion: 1.8
pName: SunJGSS pInfo: Sun (Kerberos v5, SPNEGO) pVersion: 1.8
pName: SunSASL pInfo: Sun SASL provider(implements client mechanisms for:
DIGEST-MD5, GSSAPI, EXTERNAL, PLAIN, CRAM-MD5, NTLM; server mechanisms for:
DIGEST-MD5, GSSAPI, CRAM-MD5, NTLM) pVersion: 1.8
pName: XMLDSig pInfo: XMLDSig (DOM XMLSignatureFactory; DOM KeyInfoFactory;
C14N 1.0, C14N 1.1, Exclusive C14N, Base64, Enveloped, XPath, XPath2, XSLT
TransformServices) pVersion: 1.8
pName: SunPCSC pInfo: Sun PC/SC provider pVersion: 1.8
pName: SunMSCAPI pInfo: Sun's Microsoft Crypto API provider pVersion: 1.8
pName: POIXmlDsigProvider pInfo: POIXmlDsigProvider pVersion: 1.0
pName: BC pInfo: BouncyCastle Security Provider v1.64 pVersion: 1.64

ERROR: unknown canonicalization method:
http://schemas.openxmlformats.org/package/2006/RelationshipTransform
javax.xml.crypto.dsig.XMLSignatureException: unknown canonicalization
method: http://schemas.openxmlformats.org/package/2006/RelationshipTransform
at
org.apache.poi.poifs.crypt.dsig.facets.SignatureFacetHelper.newTransform(SignatureFacetHelper.java:47)
~[poi-ooxml-5.0.0.jar:5.0.0]
at
org.apache.poi.poifs.crypt.dsig.facets.OOXMLSignatureFacet.addManifestReferences(OOXMLSignatureFacet.java:192)
~[poi-ooxml-5.0.0.jar:5.0.0]
at
org.apache.poi.poifs.crypt.dsig.facets.OOXMLSignatureFacet.addManifestObject(OOXMLSignatureFacet.java:110)
~[poi-ooxml-5.0.0.jar:5.0.0]
at
org.apache.poi.poifs.crypt.dsig.facets.OOXMLSignatureFacet.preSign(OOXMLSignatureFacet.java:96)
~[poi-ooxml-5.0.0.jar:5.0.0]
at
org.apache.poi.poifs.crypt.dsig.SignatureInfoInpo.preSign(SignatureInfoInpo.java:397)
~[classes/:5.0.0]
at
org.apache.poi.poifs.crypt.dsig.SignatureInfoInpo.confirmSignature(SignatureInfoInpo.java:225)
~[classes/:5.0.0]
at model.Signature.podpisiDocx(Signature.java:303) ~[classes/:?]
at servlets.AjaxServlet.izvozPodatkovPripravaAkcija(AjaxServlet.java:6297)
~[classes/:?]
at servlets.AjaxServlet.doGet(AjaxServlet.java:6050) ~[classes/:?]
at servlets.AjaxServlet.doPost(AjaxServlet.java:7624) ~[classes/:?]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:652)
~[servlet-api.jar:4.0.FR]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
~[servlet-api.jar:4.0.FR]
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
~[catalina.jar:9.0.41]
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
~[catalina.jar:9.0.41]
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
~[tomcat-websocket.jar:9.0.41]
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
~[catalina.jar:9.0.41]
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
~[catalina.jar:9.0.41]
at pageFilter.PagesFilter.doFilter(PagesFilter.java:148) ~[classes/:?]
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
~[catalina.jar:9.0.41]
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
~[catalina.jar:9.0.41]
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
~[catalina.jar:9.0.41]
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
~[catalina.jar:9.0.41]
at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)
~[catalina.jar:9.0.41]
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)
~[catalina.jar:9.0.41]
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
~[catalina.jar:9.0.41]
at
org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)
~[catalina.jar:9.0.41]
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
~[catalina.jar:9.0.41]
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
~[catalina.jar:9.0.41]
at
org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)
~[tomcat-coyote.jar:9.0.41]
at
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
~[tomcat-coyote.jar:9.0.41]
at
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:888)
~[tomcat-coyote.jar:9.0.41]
at
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1597)
~[tomcat-coyote.jar:9.0.41]
at
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
~[tomcat-coyote.jar:9.0.41]
at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
~[?:1.8.0_271]
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
~[?:1.8.0_271]
at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
~[tomcat-util.jar:9.0.41]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_271]
Caused by: java.security.InvalidAlgorithmParameterException
at
org.apache.poi.poifs.crypt.dsig.services.RelationshipTransformService.init(RelationshipTransformService.java:132)
~[poi-ooxml-5.0.0.jar:5.0.0]
at
org.apache.jcp.xml.dsig.internal.dom.DOMXMLSignatureFactory.newTransform(DOMXMLSignatureFactory.java:321)
~[xmlsec-2.2.2.jar:2.2.2]
at
org.apache.poi.poifs.crypt.dsig.facets.SignatureFacetHelper.newTransform(SignatureFacetHelper.java:45)
~[poi-ooxml-5.0.0.jar:5.0.0]
... 36 more

------------------------- OUTPUT END ---------------------


On Thu, Aug 12, 2021 at 11:42 PM Andreas Beeker <[email protected]>
wrote:

> Hi Blaz,
>
> sorry for the late response.
>
> Please debug org.apache.poi.poifs.crypt.dsig.SignatureInfo#initXmlProvider
> after the servlet is reloaded.
> My guess is that the RelationshipTransformService registration is lost
> somewhere and the singleton is not initialized again.
> So depending on the internal state of SignatureInfo.provider or
> signatureConfig.provider, I would try to null them.
>
> Alternatively you could recall the three init methods invoked in
> org.apache.poi.poifs.crypt.dsig.SignatureInfo.XmlProviderInitSingleton#XmlProviderInitSingleton
> yourself.
>
> Andi.
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>

Reply via email to