0 Replies Latest reply on Dec 20, 2017 1:40 AM by Dave Doolittle

    ORDS 17.4 and tomcat authentication issues

    Dave Doolittle

      Testing in my QA environment with new release of ORDS, I'm having same problems that I had with the 17-beta release.

       

       

      Environment:

      Linux 2.6.32-573.12.1.el6.x86_64

      Oracle EE DB 11.2.0.4

      Apache-HTTPD 2.4.6 with mod_jk and mod_auth_centrifydc_24 (this is my Active Directory authenticator)

      Apex 5.1.3.00.05

      Apache Tomcat 8.5.23

      ORDS 17.4.1.353.06.48

       

       

      When I disable the tomcatAuthentication=false in tomcat's server.xml file for my AJP connection I get the java error listed below.

      If I enable tomcatAuthentication=true my applications "work" but my authentication fails because it bypasses the centrifydc auth. 

       

       

      If I switch back to ORDS 3.0.12.263.15.32 then everything works. This is same configuration as production, which has worked for the past 4 years with different versions of ORDS and mod_plsql.

       

       

      Production environment:

      Linux 2.6.32-573.12.1.el6.x86_64

      Oracle EE DB 11.2.0.4

      Apache-HTTPD 2.4.6 with mod_jk and mod_auth_centrifydc_24 (this is my Active Directory authenticator)

      Apex 5.1.3.00.05

      Apache Tomcat 7.0.33

      ORDS 3.0.12.263.15.32

       

       

      Also, still getting memory leak warnings about threads that were started but not shutdown properly from tomcat when I shutdown tomcat. See second snippet of catalina.log below.

       

       

      tomcat server.xml

         <Connector port="8009" protocol="AJP/1.3" allowTrace="true" redirectPort="8443" connectionTimeout="600000" packetSize="30000" tomcatAuthentication="false" tomcatAuthorization="false" />

       

       

       

       

      **********catalina.log**************************************************

      db.username=APEX_PUBLIC_USER

       

       

      19-Dec-2017 18:28:48.416 SEVERE [ajp-nio-8009-exec-1] . null

      java.lang.NullPointerException

              at oracle.dbtools.url.mapping.db.DatabaseURLMappingImpl.checkUserSchemaMapping(DatabaseURLMappingImpl.java:536)

              at oracle.dbtools.url.mapping.db.DatabaseURLMappingImpl.resolve(DatabaseURLMappingImpl.java:167)

              at oracle.dbtools.url.mapping.URLMappingCache.cachedMapping(URLMappingCache.java:211)

              at oracle.dbtools.url.mapping.URLMappingCache.map(URLMappingCache.java:61)

              at oracle.dbtools.url.mapping.filter.URLMappingFilter.doFilter(URLMappingFilter.java:103)

              at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:47)

              at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)

              at oracle.dbtools.http.auth.external.ExternalSessionFilter.doFilter(ExternalSessionFilter.java:59)

              at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:47)

              at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)

              at oracle.dbtools.http.cors.CORSResponseFilter.doFilter(CORSResponseFilter.java:83)

              at oracle.dbtools.http.filters.HttpResponseFilter.doFilter(HttpResponseFilter.java:45)

              at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)

              at oracle.dbtools.http.errors.ErrorPageFilter.doFilter(ErrorPageFilter.java:85)

              at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:47)

              at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)

              at oracle.dbtools.http.secure.ForceHttpsFilter.doFilter(ForceHttpsFilter.java:72)

              at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:47)

              at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)

              at oracle.dbtools.http.auth.ForceAuthFilter.doFilter(ForceAuthFilter.java:44)

              at oracle.dbtools.http.filters.HttpFilter.doFilter(HttpFilter.java:47)

              at oracle.dbtools.http.filters.FilterChainImpl.doFilter(FilterChainImpl.java:64)

              at oracle.dbtools.http.filters.Filters.filter(Filters.java:65)

              at oracle.dbtools.http.entrypoint.EntryPoint.service(EntryPoint.java:81)

              at oracle.dbtools.http.entrypoint.EntryPointServlet.service(EntryPointServlet.java:49)

              at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)

              at oracle.dbtools.rt.web.HttpEndpointBase.dispatchableServices(HttpEndpointBase.java:113)

              at oracle.dbtools.rt.web.HttpEndpointBase.service(HttpEndpointBase.java:80)

              at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)

              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)

              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

              at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)

              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)

              at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)

              at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)

              at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478)

              at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140)

              at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)

              at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:650)

              at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)

              at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)

              at org.apache.coyote.ajp.AjpProcessor.service(AjpProcessor.java:486)

              at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)

              at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)

              at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1459)

              at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)

              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)

              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)

              at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)

              at java.lang.Thread.run(Thread.java:748)

       

       

      ******************** Memory leak warnings ***********************************

       

       

      19-Dec-2017 20:22:50.933 INFO [main] org.apache.catalina.core.StandardServer.await A valid shutdown command was received via the shutdown port. Stopping the Server instance.

      19-Dec-2017 20:22:50.936 INFO [main] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["http-nio-8080"]

      19-Dec-2017 20:22:50.956 INFO [main] org.apache.coyote.AbstractProtocol.pause Pausing ProtocolHandler ["ajp-nio-8009"]

      19-Dec-2017 20:22:50.959 INFO [main] org.apache.catalina.core.StandardService.stopInternal Stopping service [Catalina]

      19-Dec-2017 20:22:51.120 WARNING [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesJdbc The web application [apex] registered the JDBC driver [oracle.jdbc.OracleDriver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.

      19-Dec-2017 20:22:51.131 WARNING [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [apex] appears to have started a thread named [Timer-0] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:

      java.lang.Object.wait(Native Method)

      java.lang.Object.wait(Object.java:502)

      java.util.TimerThread.mainLoop(Timer.java:526)

      java.util.TimerThread.run(Timer.java:505)

      19-Dec-2017 20:22:51.132 WARNING [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [apex] appears to have started a thread named [RepositoryLoaderConsumerThread] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:

      sun.misc.Unsafe.park(Native Method)

      java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)

      java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)

      java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)

      oracle.dbtools.sdw.SDWXMLRestRepository$RepositoryLoaderConsumer.run(SDWXMLRestRepository.java:696)

      java.lang.Thread.run(Thread.java:748)

      19-Dec-2017 20:22:51.137 WARNING [localhost-startStop-2] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesThreads The web application [apex] appears to have started a thread named [UCP-worker-thread-1] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:

      java.lang.Thread.sleep(Native Method)

      oracle.ucp.common.Core.adjustMinLimit(Core.java:1740)

      oracle.ucp.common.Core.adjustLimits(Core.java:1669)