Patient History Attachments
Dear Forum Members,
Having just started to use this PMS, I have today encountered a problem attaching images to a patient history. Specifically this happened whilst I was at a site remote to the server. The server is accessed through a port forward from the firewall. When attempting to attach the image a window appeared saying 'secure connection' which then hung there. Clicking cancel then logged me out with a message the session had been inactive for too long. The associated error in the logs is attached at the end of this message.
From the logs I am deeply suspicious this is due to the remote IP address. When back in the office and on a computer on the LAN the attachment worked perfectly. Is this an acknowledged issue or perhaps I have something mis-configured?
Any pointers much appreciated.
Chris
08 Dec 2021 14:57:43,282 WARN LoggerListener,https-openssl-nio-8443-exec-9:67 - - Authentication event SessionFixationProtectionEvent: cwearne; details: org.springframework.security.web.authentication.WebAuthenticationDetails@0: RemoteIpAddress: xxx.xx.xxx.xxx; SessionId: 5C702D0AE4CE31F3BF08EA065CAAE993
616:
08 Dec 2021 14:57:43,283 WARN LoggerListener,https-openssl-nio-8443-exec-9:67 - - Authentication event InteractiveAuthenticationSuccessEvent: cwearne; details: org.springframework.security.web.authentication.WebAuthenticationDetails@0: RemoteIpAddress: xxx.xx.xxx.xxx; SessionId: 5C702D0AE4CE31F3BF08EA065CAAE993
617:
08 Dec 2021 14:58:43,814 ERROR SpringWebContainerServlet,https-openssl-nio-8443-exec-3:175 - cwearne - Processing of multipart/form-data request failed. Stream ended unexpectedly
618:
java.io.IOException: Processing of multipart/form-data request failed. Stream ended unexpectedly
619:
at nextapp.echo2.webcontainer.filetransfer.JakartaCommonsFileUploadProvider.updateComponent(JakartaCommonsFileUploadProvider.java:102) ~[echo-filetransfer-webcontainer-2.1.0.jar:?]
620:
at nextapp.echo2.webcontainer.filetransfer.UploadReceiver.service(UploadReceiver.java:115) ~[echo-filetransfer-webcontainer-2.1.0.jar:?]
621:
at nextapp.echo2.webcontainer.filetransfer.UploadReceiver.service(UploadReceiver.java:106) ~[echo-filetransfer-webcontainer-2.1.0.jar:?]
622:
at nextapp.echo2.webrender.WebRenderServlet.process(WebRenderServlet.java:273) ~[echo-webrender-2.1.1.jar:?]
623:
at org.openvpms.web.echo.servlet.SpringWebContainerServlet.processRequest(SpringWebContainerServlet.java:237) ~[openvpms-web-echo-2.3.0.2-SNAPSHOT.jar:2.3.0.2-SNAPSHOT]
624:
at org.openvpms.web.echo.servlet.SpringWebContainerServlet.process(SpringWebContainerServlet.java:173) [openvpms-web-echo-2.3.0.2-SNAPSHOT.jar:2.3.0.2-SNAPSHOT]
625:
at nextapp.echo2.webrender.WebRenderServlet.doPost(WebRenderServlet.java:189) [echo-webrender-2.1.1.jar:?]
626:
at javax.servlet.http.HttpServlet.service(HttpServlet.java:660) [tomcat9-servlet-api-9.0.31.jar:?]
627:
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741) [tomcat9-servlet-api-9.0.31.jar:?]
628:
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) [tomcat9-catalina-9.0.31.jar:9.0.31]
629:
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat9-catalina-9.0.31.jar:9.0.31]
630:
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) [tomcat9-websocket-9.0.31.jar:9.0.31]
631:
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat9-catalina-9.0.31.jar:9.0.31]
632:
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat9-catalina-9.0.31.jar:9.0.31]
633:
at org.openvpms.web.echo.servlet.Log4JMDCUserFilter.doFilter(Log4JMDCUserFilter.java:58) [openvpms-web-echo-2.3.0.2-SNAPSHOT.jar:2.3.0.2-SNAPSHOT]
634:
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat9-catalina-9.0.31.jar:9.0.31]
635:
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat9-catalina-9.0.31.jar:9.0.31]
636:
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:320) [org.apache.servicemix.bundles.spring-security-web-5.3.0.RELEASE_1.jar:?]
637:
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:126) [org.apache.servicemix.bundles.spring-security-web-5.3.0.RELEASE_1.jar:?]
638:
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:90) [org.apache.servicemix.bundles.spring-security-web-5.3.0.RELEASE_1.jar:?]
639:
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [org.apache.servicemix.bundles.spring-security-web-5.3.0.RELEASE_1.jar:?]
640:
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:118) [org.apache.servicemix.bundles.spring-security-web-5.3.0.RELEASE_1.jar:?]
641:
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [org.apache.servicemix.bundles.spring-security-web-5.3.0.RELEASE_1.jar:?]
642:
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:137) [org.apache.servicemix.bundles.spring-security-web-5.3.0.RELEASE_1.jar:?]
643:
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [org.apache.servicemix.bundles.spring-security-web-5.3.0.RELEASE_1.jar:?]
644:
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:111) [org.apache.servicemix.bundles.spring-security-web-5.3.0.RELEASE_1.jar:?]
645:
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [org.apache.servicemix.bundles.spring-security-web-5.3.0.RELEASE_1.jar:?]
646:
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:158) [org.apache.servicemix.bundles.spring-security-web-5.3.0.RELEASE_1.jar:?]
647:
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [org.apache.servicemix.bundles.spring-security-web-5.3.0.RELEASE_1.jar:?]
648:
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63) [org.apache.servicemix.bundles.spring-security-web-5.3.0.RELEASE_1.jar:?]
649:
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [org.apache.servicemix.bundles.spring-security-web-5.3.0.RELEASE_1.jar:?]
650:
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:200) [org.apache.servicemix.bundles.spring-security-web-5.3.0.RELEASE_1.jar:?]
651:
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [org.apache.servicemix.bundles.spring-security-web-5.3.0.RELEASE_1.jar:?]
652:
at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:92) [org.apache.servicemix.bundles.spring-security-web-5.3.0.RELEASE_1.jar:?]
653:
at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:77) [org.apache.servicemix.bundles.spring-security-web-5.3.0.RELEASE_1.jar:?]
654:
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) [org.apache.servicemix.bundles.spring-web-5.2.4.RELEASE_1.jar:?]
655:
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [org.apache.servicemix.bundles.spring-security-web-5.3.0.RELEASE_1.jar:?]
656:
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56) [org.apache.servicemix.bundles.spring-security-web-5.3.0.RELEASE_1.jar:?]
657:
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) [org.apache.servicemix.bundles.spring-web-5.2.4.RELEASE_1.jar:?]
658:
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [org.apache.servicemix.bundles.spring-security-web-5.3.0.RELEASE_1.jar:?]
659:
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105) [org.apache.servicemix.bundles.spring-security-web-5.3.0.RELEASE_1.jar:?]
660:
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [org.apache.servicemix.bundles.spring-security-web-5.3.0.RELEASE_1.jar:?]
661:
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215) [org.apache.servicemix.bundles.spring-security-web-5.3.0.RELEASE_1.jar:?]
662:
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178) [org.apache.servicemix.bundles.spring-security-web-5.3.0.RELEASE_1.jar:?]
663:
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358) [org.apache.servicemix.bundles.spring-web-5.2.4.RELEASE_1.jar:?]
664:
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271) [org.apache.servicemix.bundles.spring-web-5.2.4.RELEASE_1.jar:?]
665:
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat9-catalina-9.0.31.jar:9.0.31]
666:
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat9-catalina-9.0.31.jar:9.0.31]
667:
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) [tomcat9-catalina-9.0.31.jar:9.0.31]
668:
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) [tomcat9-catalina-9.0.31.jar:9.0.31]
669:
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) [tomcat9-catalina-9.0.31.jar:9.0.31]
670:
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) [tomcat9-catalina-9.0.31.jar:9.0.31]
671:
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) [tomcat9-catalina-9.0.31.jar:9.0.31]
672:
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:688) [tomcat9-catalina-9.0.31.jar:9.0.31]
673:
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) [tomcat9-catalina-9.0.31.jar:9.0.31]
674:
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) [tomcat9-catalina-9.0.31.jar:9.0.31]
675:
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:367) [tomcat9-coyote-9.0.31.jar:9.0.31]
676:
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) [tomcat9-coyote-9.0.31.jar:9.0.31]
677:
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868) [tomcat9-coyote-9.0.31.jar:9.0.31]
678:
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1639) [tomcat9-coyote-9.0.31.jar:9.0.31]
679:
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat9-coyote-9.0.31.jar:9.0.31]
680:
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_292]
681:
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_292]
682:
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat9-util-9.0.31.jar:9.0.31]
683:
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_292]
684:
08 Dec 2021 14:59:00,758 WARN LoggerListener,https-openssl-nio-8443-exec-7:67 - - Authentication event SessionFixationProtectionEvent: cwearne; details: org.springframework.security.web.authentication.WebAuthenticationDetails@0: RemoteIpAddress: xxx.xx.xxx.xxx; SessionId: EBA4C21C4306847746E93EB9A1123163
685:
08 Dec 2021 14:59:00,758 WARN LoggerListener,https-openssl-nio-8443-exec-7:67 - - Authentication event InteractiveAuthenticationSuccessEvent: cwearne; details: org.springframework.security.web.authentication.WebAuthenticationDetails@0: RemoteIpAddress: xxx.xx.xxx.xxx; SessionId: EBA4C21C4306847746E93EB9A1123163
686:
08 Dec 2021 14:59:45,507 WARN LoggerListener,https-openssl-nio-8443-exec-2:67 - - Authentication event SessionFixationProtectionEvent: cwearne; details: org.springframework.security.web.authentication.WebAuthenticationDetails@0: RemoteIpAddress: xxx.xx.xxx.xxx; SessionId: 856CC7D8D96BF48B6EB324EFC0F5A8CE
687:
08 Dec 2021 14:59:45,508 WARN LoggerListener,https-openssl-nio-8443-exec-2:67 - - Authentication event InteractiveAuthenticationSuccessEvent: cwearne; details: org.springframework.security.web.authentication.WebAuthenticationDetails@0: RemoteIpAddress: xxx.xx.xxx.xxx; SessionId: 856CC7D8D96BF48B6EB324EFC0F5A8CE
Re: Patient History Attachments
You may be running into a bug in Tomcat 9.0.31 as described here: https://medium.com/javarevisited/how-we-found-apache-tomcat-couldnt-hand...
The solution is to either upgrade to a more recent Tomcat 9.0.x, or downgrade to Tomcat 8.5.x.
Re: Patient History Attachments
Thanks Tim. Interestingly I connect over SSL on the LAN as well and it works fine. The discussion in bugzilla mentions latency as a potential trigger and this makes sense as my broadband connection at the site that had the problem has quite a problem with latency where as the LAN is essentially instant.
I'll investigate upgrading tomcat. As I used the apt version on the production server its a slight headache to upgrade until ubuntu see fit to change their version.
Chris