OxalisCommunity / oxalis

Oxalis - PEPPOL Access Point open source implementation - Core component
Other
129 stars 90 forks source link

bouncycastle exception when receiving #185

Closed oskaremil closed 9 years ago

oskaremil commented 9 years ago

Loaded a tomcat instance on my development machine and I have no problems recieveing EHF there.

I copy the WAR file to production for deployment but there I get an exception on inbound messages:

okt 16, 2014 12:06:26 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [default] in context with path [/oxalis] threw exception
java.lang.IllegalStateException: Unable to add Signer information. cannot create signer: class configured for Signature(provider: BC)cannot be found.
    at eu.peppol.as2.SMimeMessageFactory.createSignedMimeMessage(SMimeMessageFactory.java:103)
    at eu.peppol.as2.MdnMimeMessageFactory.createMdn(MdnMimeMessageFactory.java:126)
    at eu.peppol.inbound.server.AS2Servlet.doPost(AS2Servlet.java:190)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:263)
    at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:178)
    at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:91)
    at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:62)
    at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:118)
    at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1008)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1686)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: org.bouncycastle.operator.OperatorCreationException: cannot create signer: class configured for Signature(provider: BC)cannot be found.
    at org.bouncycastle.operator.jcajce.JcaContentSignerBuilder.build(Unknown Source)
    at org.bouncycastle.cms.jcajce.JcaSimpleSignerInfoGeneratorBuilder$NamedHelper.createContentSigner(Unknown Source)
    at org.bouncycastle.cms.jcajce.JcaSimpleSignerInfoGeneratorBuilder.build(Unknown Source)
    at eu.peppol.as2.SMimeMessageFactory.createSignedMimeMessage(SMimeMessageFactory.java:101)
    ... 26 more
Caused by: java.security.NoSuchAlgorithmException: class configured for Signature(provider: BC)cannot be found.
    at java.security.Provider$Service.getImplClass(Unknown Source)
    at java.security.Provider$Service.newInstance(Unknown Source)
    at sun.security.jca.GetInstance.getInstance(Unknown Source)
    at sun.security.jca.GetInstance.getInstance(Unknown Source)
    at java.security.Signature.getInstance(Unknown Source)
    at org.bouncycastle.jcajce.NamedJcaJceHelper.createSignature(Unknown Source)
    at org.bouncycastle.operator.jcajce.OperatorHelper.createSignature(Unknown Source)
    ... 30 more
Caused by: java.lang.ClassNotFoundException: org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA1
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559)
    ... 37 more

okt 16, 2014 12:18:44 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [statisticsServlet] in context with path [/oxalis] threw exception
java.lang.IllegalArgumentException: Missing request parameter: 'granularity' (Y,M,D or H)
    at eu.peppol.inbound.server.StatisticsServlet.parseGranularity(StatisticsServlet.java:97)
    at eu.peppol.inbound.server.StatisticsServlet.parseParams(StatisticsServlet.java:78)
    at eu.peppol.inbound.server.StatisticsServlet.doGet(StatisticsServlet.java:50)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1008)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1686)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
version.oxalis: 3.0.1
version.java: 1.7.0_21
certificate.expired: false
build.id: c2e8b67b466921c1cb40fb4bc801191c3200aca6
build.tstamp: 10.10.2014 @ 13:17:52 CEST
oskaremil commented 9 years ago

UPDATE: Downgraded to JDK 6_u45 as this is the recommended java version.

Now, I can persist messages, but something else fails:

2014-10-16 12:52:33,253 INFO [eu.peppol.as2.InboundMessageReceiver] [] Persisting AS2 Message .... 
2014-10-16 12:52:33,268 INFO [eu.peppol.persistence.SimpleMessageRepository] [] Saving inbound message stream using SimpleMessageRepository 
2014-10-16 12:52:33,268 DEBUG [eu.peppol.persistence.SimpleMessageRepository] [] Default inbound message headers PeppolMessageMetaData{messageId=f5c69f36-c094-4372-86ab-b79dc1ae2e03, recipientId=9908:981672577, senderId=9908:981672577, documentTypeIdentifier=urn:oasis:names:specification:ubl:schema:xsd:Invoice-2::Invoice##urn:www.cenbii.eu:transaction:biitrns010:ver2.0:extended:urn:www.peppol.eu:bis:peppol5a:ver2.0:extended:urn:www.difi.no:ehf:faktura:ver2.0::2.1, profileTypeIdentifier=urn:www.cenbii.eu:profile:bii05:ver2.0, sendingAccessPoint=APP_1000000032, receivingAccessPoint=APP_1000000032, protocol=AS2, userAgent='null', userAgentVersion='null', sendersTimeStamp=null, receivedTimeStamp=Thu Oct 16 12:52:33 CEST 2014, sendingAccessPointPrincipal=O=Reknes AS, CN=APP_1000000032, C=NO, transmissionId='b225c2f6-3f88-4a5c-97d8-d6eec9570413'} 
2014-10-16 12:52:33,299 DEBUG [eu.peppol.persistence.SimpleMessageRepository] [] File E:\oxalis_home\inbound\9908_981672577\9908_981672577\b225c2f6-3f88-4a5c-97d8-d6eec9570413.xml written 
2014-10-16 12:52:33,299 DEBUG [eu.peppol.persistence.SimpleMessageRepository] [] File E:\oxalis_home\inbound\9908_981672577\9908_981672577\b225c2f6-3f88-4a5c-97d8-d6eec9570413.txt written 
2014-10-16 12:52:33,315 INFO [eu.peppol.as2.InboundMessageReceiver] [] Message received OK, MDN returned: MdnData {subject='AS2 MDN as you requested', as2From='APP_1000000032', as2To='APP_1000000032', as2Disposition=automatic-action/MDN-sent-automatically; processed, mic='UED4qmLtOrQoF7dV+uxrTwXemhA=, sha1', date=to, 16 okt 2014 12:52:33 +0200, messageId='b225c2f6-3f88-4a5c-97d8-d6eec9570413'} 
2014-10-16 12:52:33,674 ERROR [eu.peppol.inbound.server.AS2Servlet] [] Internal error occured: null 
java.lang.NullPointerException: null
    at org.apache.tomcat.util.http.parser.HttpParser.parseMediaType(HttpParser.java:217) ~[tomcat-coyote.jar:7.0.40]
    at org.apache.tomcat.util.http.parser.MediaTypeCache.parse(MediaTypeCache.java:54) ~[tomcat-coyote.jar:7.0.40]
    at org.apache.catalina.connector.Response.setContentType(Response.java:806) ~[catalina.jar:7.0.40]
    at org.apache.catalina.connector.Response.checkSpecialHeader(Response.java:1119) ~[catalina.jar:7.0.40]
    at org.apache.catalina.connector.Response.setHeader(Response.java:1446) ~[catalina.jar:7.0.40]
    at org.apache.catalina.connector.ResponseFacade.setHeader(ResponseFacade.java:535) ~[catalina.jar:7.0.40]
    at eu.peppol.inbound.server.AS2Servlet.setHeadersForMDN(AS2Servlet.java:207) ~[AS2Servlet.class:na]
    at eu.peppol.inbound.server.AS2Servlet.doPost(AS2Servlet.java:171) ~[AS2Servlet.class:na]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:647) [servlet-api.jar:na]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) [servlet-api.jar:na]
    at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:263) [guice-servlet-3.0.jar:na]
    at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:178) [guice-servlet-3.0.jar:na]
    at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:91) [guice-servlet-3.0.jar:na]
    at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:62) [guice-servlet-3.0.jar:na]
    at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:118) [guice-servlet-3.0.jar:na]
    at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113) [guice-servlet-3.0.jar:na]
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) [catalina.jar:7.0.40]
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) [catalina.jar:7.0.40]
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) [catalina.jar:7.0.40]
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) [catalina.jar:7.0.40]
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) [catalina.jar:7.0.40]
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) [catalina.jar:7.0.40]
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) [catalina.jar:7.0.40]
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) [catalina.jar:7.0.40]
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) [catalina.jar:7.0.40]
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) [catalina.jar:7.0.40]
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1008) [tomcat-coyote.jar:7.0.40]
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) [tomcat-coyote.jar:7.0.40]
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1686) [tomcat-coyote.jar:7.0.40]
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) [na:1.6.0_45]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) [na:1.6.0_45]
    at java.lang.Thread.run(Thread.java:662) [na:1.6.0_45]
2014-10-16 12:52:33,674 ERROR [eu.peppol.inbound.server.AS2Servlet] [] Attempting to return MDN with explanatory message and HTTP 500 status 

So the sender gets HTTP 500 and believes the message was not transmitted

teedjay commented 9 years ago

That's probably due to a bug in Tomcat - which is fixed in 7.0.42 and newer - take a look under Troubleshooting on the front page for more info : https://github.com/difi/oxalis

oskaremil commented 9 years ago

crap, I use .40 :disappointed:

Will try an update and close this issue if it solves the problem

oskaremil commented 9 years ago

Resolved by upgrading to Tomcat 7.0.56

vishwambharBhat7 commented 4 months ago

required support for jboss EAP 7.4 . the code is developed using jdk 7 and deployed in Server with jdk 8 and jboss EAP 7.4. But i am getting Exception Cause : Caused by: java.lang.ClassNotFoundException: org.bouncycastle.jcajce.provider.asymmetric.rsa.DigestSignatureSpi$SHA1