todvora / eet-client

Client and library for #EET communication - http://www.etrzby.cz/ , written in Java
MIT License
47 stars 26 forks source link

InMemoryCRLStore update during submit #31

Closed rds76 closed 6 years ago

rds76 commented 7 years ago

Pokud v okamziku, kdy dochazi k update te CRL cache (doba behu cca 4s), se provede EET submit, odeslani nodobehne a konci vyjimkou. Uz se mi to takto potkalo asi 4x a konci vyjimkou javax.xml.ws.soap.SOAPFaultException: Fault string, and possibly fault code, not set

[2017-04-19T13:51:06.621+0200] [Payara 4.1] [WARNING] [] [org.apache.cxf.phase.PhaseInterceptorChain] [tid: _ThreadID=27 _ThreadName=http-thread-pool(3)] [timeMillis: 1492602666621] [levelValue: 900] [[
Interceptor for {http://fs.mfcr.cz/eet/schema/v3}EETService#{http://fs.mfcr.cz/eet/schema/v3}OdeslaniTrzby has thrown exception, unwinding now
java.util.concurrent.CancellationException
        at java.util.concurrent.FutureTask.report(FutureTask.java:121)
        at java.util.concurrent.FutureTask.get(FutureTask.java:192)
        at cz.tomasdvorak.eet.client.security.crl.InMemoryCRLStore.getCRLStore(InMemoryCRLStore.java:53)
        at cz.tomasdvorak.eet.client.security.MerlinWithCRLDistributionPointsExtension.verifyTrust(MerlinWithCRLDistributionPointsExtension.java:49)
        at org.apache.wss4j.dom.validate.SignatureTrustValidator.verifyTrustInCerts(SignatureTrustValidator.java:108)
        at org.apache.wss4j.dom.validate.SignatureTrustValidator.validate(SignatureTrustValidator.java:64)
        at org.apache.wss4j.dom.processor.SignatureProcessor.handleToken(SignatureProcessor.java:185)
        at org.apache.wss4j.dom.WSSecurityEngine.processSecurityHeader(WSSecurityEngine.java:428)
        at org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessageInternal(WSS4JInInterceptor.java:278)
        at org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java:190)
        at cz.tomasdvorak.eet.client.security.WSS4JEetInInterceptor.handleMessage(WSS4JEetInInterceptor.java:29)
        at cz.tomasdvorak.eet.client.security.WSS4JEetInInterceptor.handleMessage(WSS4JEetInInterceptor.java:16)
        at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
        at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:802)
        at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1673)
        at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1551)
        at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1348)
        at org.apache.cxf.io.CacheAndWriteOutputStream.postClose(CacheAndWriteOutputStream.java:56)
        at org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:215)
        at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
        at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:651)
        at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
        at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:307)
        at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:516)
        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:425)
        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:326)
        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:279)
        at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96)
        at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:138)
        at com.sun.proxy.$Proxy391.odeslaniTrzby(Unknown Source)
        at cz.tomasdvorak.eet.client.EETClientImpl.submitReceipt(EETClientImpl.java:48)
2017-04-19 13:51:05.383 [pool-6646-thread-3] INFO  cz.tomasdvorak.eet.client.security.crl.InMemoryCRLStore - CRL loaded from URI http://qcrldp3.ica.cz/2qca16_rsa.crl, storing in cache. Next update: Thu Apr 2
0 13:51:02 CEST 2017
2017-04-19 13:51:05.407 [pool-6646-thread-2] INFO  cz.tomasdvorak.eet.client.security.crl.InMemoryCRLStore - CRL loaded from URI http://qcrldp2.ica.cz/2qca16_rsa.crl, storing in cache. Next update: Thu Apr 2
0 13:51:02 CEST 2017
2017-04-19 13:51:09.618 [pool-6646-thread-1] INFO  cz.tomasdvorak.eet.client.security.crl.InMemoryCRLStore - CRL loaded from URI http://qcrldp1.ica.cz/2qca16_rsa.crl, storing in cache. Next update: Thu Apr 2
0 13:51:02 CEST 2017

Jde videt podle casu jak se to potkalo.

todvora commented 7 years ago

Díky za report, zkusím se na to podívat. Obecně si ale myslím, že InMemoryCRLStore je slepá cesta a pro verzi 3 už jsem jej odstranil a vše nechávám čistě na javě.

Samozřejmě rád přijmu i jakýkoliv pull request na tohle téma :-)

todvora commented 6 years ago

Verze 3.0 uz je vic jak rok publikovana, problem se tyka verzi 2.x. Zaviram issue, pokud je to stale aktualni, prosim nejaky pull request a pote zverejnim opravenou 2.x verzi.