Hans Deragon created NIFI-9699:
----------------------------------

             Summary: NullPointerException at 
org.apache.nifi.web.api.OIDCAccessResource.oidcCallback(OIDCAccessResource.java:186)
                 Key: NIFI-9699
                 URL: https://issues.apache.org/jira/browse/NIFI-9699
             Project: Apache NiFi
          Issue Type: Bug
          Components: Core Framework
    Affects Versions: 1.15.3
            Reporter: Hans Deragon


Using [Okta |https://www.okta.com/]as an OpenID provider, sometimes the error 
below occurs. Looking at the code of 
[OIDCAccessResource.java|https://github.com/apache/nifi/blob/main/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/OIDCAccessResource.java]
 line 186, seams that the response returned or its description is Null.  Need 
to handle it properly.

*Code snippet of 
[OIDCAccessResource.java|https://github.com/apache/nifi/blob/main/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/api/OIDCAccessResource.java]
 line 186:*
{code:java}
// report the unsuccessful login
final AuthenticationErrorResponse errorOidcResponse 
=(AuthenticationErrorResponse) oidcResponse;            
forwardToLoginMessagePage(httpServletRequest, httpServletResponse, 
"Unsuccessful login attempt: "                    + 
errorOidcResponse.getErrorObject().getDescription());  // <<<< Not catching 
NULL here.{code}
*Error with full stacktrace:*
{code:java}
2022-02-16 12:00:34,692 ERROR [NiFi Web Server-38] 
o.a.nifi.web.api.config.ThrowableMapper An unexpected error has occurred: 
java.lang.NullPointerException. Returning Internal Server Error response.       
                                                                                
                                                                                
             java.lang.NullPointerException: null                               
                                                                                
                                                  at 
org.apache.nifi.web.api.OIDCAccessResource.oidcCallback(OIDCAccessResource.java:186)
                                                                                
                      at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
                                                                                
                          at 
java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
                                                                                
          at 
java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                                                                                
  at java.base/java.lang.reflect.Method.invoke(Method.java:566)                 
                                                                                
                               at 
org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:52)
                                         at 
org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:124)
                                                      at 
org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:167)
                                                     at 
org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$VoidOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:159)
                                  at 
org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:79)
                                                    at 
org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:475)
                                                                                
            at 
org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:397)
                                                                                
             at 
org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:81)
                                                                                
              at 
org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:255)         
                                                                                
                          at 
org.glassfish.jersey.internal.Errors$1.call(Errors.java:248)                    
                                                                                
                          at 
org.glassfish.jersey.internal.Errors$1.call(Errors.java:244)                    
                                                                                
                          at 
org.glassfish.jersey.internal.Errors.process(Errors.java:292)                   
                                                                                
                          at 
org.glassfish.jersey.internal.Errors.process(Errors.java:274)                   
                                                                                
                          at 
org.glassfish.jersey.internal.Errors.process(Errors.java:244)                   
                                                                                
                          at 
org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:265)
                                                                                
                      at 
org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:234)       
                                                                                
                          at 
org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:680)
                                                                                
                        at 
org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:394)    
                                                                                
                          at 
org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:346)        
                                                                                
                          at 
org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:366)
                                                                                
                          at 
org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:319)
                                                                                
                          at 
org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:205)
                                                                                
                          at 
org.eclipse.jetty.servlet.ServletHolder$NotAsync.service(ServletHolder.java:1459)
                                                                                
                         at 
org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799)          
                                                                                
                          at 
org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1631)
                                                                                
                      at 
org.apache.nifi.web.filter.RequestLogger.doFilter(RequestLogger.java:66)        
                                                                                
                          at 
org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)          
                                                                                
                          at 
org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
                                                                                
                         at 
org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:204)
                                                                                
             at 
org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)
                                                                                
                     at 
org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)
                                                                                
       at 
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)
                                                                                
             at 
org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)          
                                                                                
                          at 
org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
                                                                                
                         at 
org.apache.nifi.web.filter.TimerFilter.doFilter(TimerFilter.java:51)            
                                                                                
                          at 
org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)          
                                                                                
                          at 
org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
                                                                                
                         at 
org.apache.nifi.web.filter.ExceptionFilter.doFilter(ExceptionFilter.java:46)    
                                                                                
                          at 
org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:201)          
                                                                                
                          at 
org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
                                                                                
                         at 
org.eclipse.jetty.servlets.DoSFilter.doFilterChain(DoSFilter.java:487)          
                                                                                
                          at 
org.eclipse.jetty.servlets.DoSFilter.doFilter(DoSFilter.java:336)               
                                                                                
                          at 
org.eclipse.jetty.servlets.DoSFilter.doFilter(DoSFilter.java:301)               
                                                                                
                          at 
org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)          
                                                                                
                          at 
org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
                                                                                
                         at 
org.apache.nifi.web.security.headers.StrictTransportSecurityFilter.doFilter(StrictTransportSecurityFilter.java:48)
                                                                        at 
org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)          
                                                                                
                          at 
org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
                                                                                
                         at 
org.apache.nifi.web.security.headers.XContentTypeOptionsFilter.doFilter(XContentTypeOptionsFilter.java:48)
                                                                                
at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)       
                                                                                
                             at 
org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
                                                                                
                         at 
org.apache.nifi.web.security.headers.XSSProtectionFilter.doFilter(XSSProtectionFilter.java:48)
                                                                                
            at 
org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)          
                                                                                
                          at 
org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
                                                                                
                         at 
org.apache.nifi.web.security.headers.ContentSecurityPolicyFilter.doFilter(ContentSecurityPolicyFilter.java:47)
                                                                            at 
org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)          
                                                                                
                          at 
org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
                                                                                
                         at 
org.apache.nifi.web.security.headers.XFrameOptionsFilter.doFilter(XFrameOptionsFilter.java:48)
                                                                                
            at 
org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)          
                                                                                
                          at 
org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
                                                                                
                         at 
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:548)      
                                                                                
                          at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)   
                                                                                
                          at 
org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:600)     
                                                                                
                          at 
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) 
                                                                                
                          at 
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
                                                                                
                         at 
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624)
                                                                                
                        at 
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
                                                                                
                         at 
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1434)
                                                                                
                        at 
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
                                                                                
                          at 
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501)       
                                                                                
                          at 
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594)
                                                                                
                         at 
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
                                                                                
                          at 
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1349)
                                                                                
                         at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)   
                                                                                
                          at 
org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:146)
                                                                                
                     at 
org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:763)  
                                                                                
                          at 
org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:191)
                                                                                
       at 
org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:59)        
                                                                                
                          at 
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) 
                                                                                
                          at 
org.eclipse.jetty.server.Server.handle(Server.java:516)                         
                                                                                
                          at 
org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:400)      
                                                                                
                          at 
org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:645)             
                                                                                
                          at 
org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:392)               
                                                                                
                          at 
org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277)     
                                                                                
                          at 
org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
                                                                                
               at 
org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)               
                                                                                
                          at 
org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.onFillable(SslConnection.java:555)
                                                                                
               at 
org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:410)       
                                                                                
                          at 
org.eclipse.jetty.io.ssl.SslConnection$2.succeeded(SslConnection.java:164)      
                                                                                
                          at 
org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)               
                                                                                
                          at 
org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)            
                                                                                
                          at 
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338)
                                                                                
                    at 
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315)
                                                                                
                  at 
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173)
                                                                                
                 at 
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)
                                                                                
                        at 
org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409)
                                                                                
  at 
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)
                                                                                
                          at 
org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)
                                                                                
                     at java.base/java.lang.Thread.run(Thread.java:829)         
                                                                                
                                            {code}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to