Hi There, I am new to this forum, please correct me if this is not the right place to ask below question.
Problem Description I have tomcat9/OpenJDK17 with RHEL 8.7 container image deployed on AWS EKS/EC2 worker nodes. This image has FIPS compliance validation done at OS/OpenJDK and at tomcat level using the configurations. I am able to successfully deploy our application (has JSP's) in this container but when I deploy the SSO application (using MSAL4J and can be found at https://github.com/Azure-Samples/ms-identity-msal-java-samples/tree/main/3.%20Java%20Servlet%20Web%20App%20Tutorial/1-Authentication/sign-in) encountering below Jasper exception. Please be advised Tomcat is started with security manager and attaching the Catalina.policy used. Environment: * EKS 1.24 * EC2 worker node with RHEL 8.7 * Container image with RHEL 8.7 and FIPS validation enabled * Tomcat 9.0.73 * openjdk version "17.0.6" 2023-01-17 LTS Observation * My team member has deployed msal4j on same tomcat 9.0.73 without FIPS and tomcat security manager, it works fine. * I assume the index.jsp has something that is not having permission (due to tomcat started with security manager) to compile in runtime * When I access https://localhost:8643/msal4j-servlet-auth its returning 302<https://localhost:8643/msal4j-servlet-auth%20its%20returning%20302>. This is expected * When I access https://localhost:8643/msal4j-servlet-auth/ it returns 500 and throws below exception Question Can you help me identify what the issue is Error: [tomcat@c793762ed6ee logs]$ cat localhost.2023-03-24.log 24-Mar-2023 13:46:19.866 SEVERE [https-jsse-nio-8643-exec-4] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [jsp] in context with path [/msal4j-servlet-auth] threw exception [org.apache.jasper.JasperException: Unable to compile class for JSP] with root cause java.lang.NullPointerException: Cannot invoke "java.io.InputStream.close()" because the return value of "java.net.URLConnection.getInputStream()" is null at org.apache.jasper.JspCompilationContext.getLastModified(JspCompilationContext.java:408) at org.apache.jasper.JspCompilationContext.getLastModified(JspCompilationContext.java:368) at org.apache.jasper.compiler.Compiler.compile(Compiler.java:391) at org.apache.jasper.compiler.Compiler.compile(Compiler.java:368) at org.apache.jasper.compiler.Compiler.compile(Compiler.java:352) at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:603) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:399) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:327) at javax.servlet.http.HttpServlet.service(HttpServlet.java:596) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.apache.catalina.security.SecurityUtil.lambda$execute$0(SecurityUtil.java:280) at java.base/java.security.AccessController.doPrivileged(AccessController.java:712) at java.base/javax.security.auth.Subject.doAsPrivileged(Subject.java:584) at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:311) at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:170) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:221) at org.apache.catalina.core.ApplicationFilterChain.lambda$doFilter$0(ApplicationFilterChain.java:145) at java.base/java.security.AccessController.doPrivileged(AccessController.java:569) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:143) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.apache.catalina.security.SecurityUtil.lambda$execute$0(SecurityUtil.java:280) at java.base/java.security.AccessController.doPrivileged(AccessController.java:712) at java.base/javax.security.auth.Subject.doAsPrivileged(Subject.java:584) at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:311) at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:253) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:187) at org.apache.catalina.core.ApplicationFilterChain.lambda$doFilter$0(ApplicationFilterChain.java:145) at java.base/java.security.AccessController.doPrivileged(AccessController.java:569) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:143) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:926) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1791) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.base/java.lang.Thread.run(Thread.java:833) [tomcat@c793762ed6ee logs]$ Thanks, Suresh Kesavan OISM/ASD National Institute of Standards and Technology Office:- 301-975-6973 From: Kesavan, Suresh Prabhu (Fed) Sent: Friday, March 24, 2023 9:50 AM To: users-i...@tomcat.apache.org; users-...@tomcat.apache.org Subject: [org.apache.jasper.JasperException: Unable to compile class for JSP] with root cause Thanks, Suresh Kesavan OISM/ASD National Institute of Standards and Technology Office:- 301-975-6973
--------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org