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

Reply via email to