You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by ma...@apache.org on 2020/01/17 16:38:01 UTC

[archiva-redback-core] 04/05: Changing cxf phase interceptor for thread cleanup to jax-rs filter

This is an automated email from the ASF dual-hosted git repository.

martin_s pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/archiva-redback-core.git

commit 3b88d33c65c0d3abd74431e6c54a000c68e9c07c
Author: Martin Stockhammer <ma...@apache.org>
AuthorDate: Fri Jan 17 17:29:31 2020 +0100

    Changing cxf phase interceptor for thread cleanup to jax-rs filter
---
 .../interceptors/ThreadLocalUserCleaner.java       | 40 ++++++----------------
 .../src/main/resources/META-INF/spring-context.xml |  2 ++
 2 files changed, 13 insertions(+), 29 deletions(-)

diff --git a/redback-integrations/redback-rest/redback-rest-services/src/main/java/org/apache/archiva/redback/rest/services/interceptors/ThreadLocalUserCleaner.java b/redback-integrations/redback-rest/redback-rest-services/src/main/java/org/apache/archiva/redback/rest/services/interceptors/ThreadLocalUserCleaner.java
index e879052..dbce28f 100644
--- a/redback-integrations/redback-rest/redback-rest-services/src/main/java/org/apache/archiva/redback/rest/services/interceptors/ThreadLocalUserCleaner.java
+++ b/redback-integrations/redback-rest/redback-rest-services/src/main/java/org/apache/archiva/redback/rest/services/interceptors/ThreadLocalUserCleaner.java
@@ -20,19 +20,17 @@ package org.apache.archiva.redback.rest.services.interceptors;
 
 
 import org.apache.archiva.redback.rest.services.RedbackAuthenticationThreadLocal;
-import org.apache.cxf.interceptor.Fault;
-import org.apache.cxf.jaxrs.interceptor.JAXRSInInterceptor;
-import org.apache.cxf.jaxrs.model.OperationResourceInfo;
-import org.apache.cxf.message.Message;
-import org.apache.cxf.phase.AbstractPhaseInterceptor;
-import org.apache.cxf.phase.Phase;
-import org.apache.cxf.phase.PhaseInterceptor;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
 
-import javax.ws.rs.core.Response;
+import javax.ws.rs.container.ContainerRequestContext;
+import javax.ws.rs.container.ContainerRequestFilter;
+import javax.ws.rs.container.ContainerResponseContext;
+import javax.ws.rs.container.ContainerResponseFilter;
+import javax.ws.rs.container.PreMatching;
 import javax.ws.rs.ext.Provider;
+import java.io.IOException;
 
 /**
  * @author Olivier Lamy
@@ -40,31 +38,15 @@ import javax.ws.rs.ext.Provider;
  */
 @Service( "threadLocalUserCleaner#rest" )
 @Provider
+@PreMatching
 public class ThreadLocalUserCleaner
-    extends AbstractPhaseInterceptor<Message>
-    implements PhaseInterceptor<Message>
+    implements ContainerResponseFilter
 {
     private final Logger log = LoggerFactory.getLogger( getClass() );
 
-    public ThreadLocalUserCleaner( String phase )
-    {
-        super( phase );
-        addAfter( JAXRSInInterceptor.class.getName() );
-    }
-
 
     public ThreadLocalUserCleaner()
     {
-        super( Phase.PRE_STREAM );
-        addAfter( JAXRSInInterceptor.class.getName() );
-    }
-
-
-    public Response handleResponse( Message message, OperationResourceInfo operationResourceInfo, Response response )
-    {
-        log.debug( "handleResponse" );
-        cleanup();
-        return null;
     }
 
     private void cleanup()
@@ -72,10 +54,10 @@ public class ThreadLocalUserCleaner
         RedbackAuthenticationThreadLocal.set( null );
     }
 
-    public void handleMessage( Message message )
-        throws Fault
+    @Override
+    public void filter( ContainerRequestContext requestContext, ContainerResponseContext responseContext ) throws IOException
     {
-        log.debug( "handleMessage" );
+        log.debug( "ThreadLocalUserCleaner cleanup" );
         cleanup();
     }
 }
diff --git a/redback-integrations/redback-rest/redback-rest-services/src/main/resources/META-INF/spring-context.xml b/redback-integrations/redback-rest/redback-rest-services/src/main/resources/META-INF/spring-context.xml
index 4e7b815..7ca444d 100644
--- a/redback-integrations/redback-rest/redback-rest-services/src/main/resources/META-INF/spring-context.xml
+++ b/redback-integrations/redback-rest/redback-rest-services/src/main/resources/META-INF/spring-context.xml
@@ -56,9 +56,11 @@
       <ref bean="passwordService#rest"/>
       <ref bean="ldapGroupMappingService#rest"/>
     </jaxrs:serviceBeans>
+    <!--
     <jaxrs:outInterceptors>
       <ref bean="threadLocalUserCleaner#rest"/>
     </jaxrs:outInterceptors>
+    -->
     <jaxrs:providers>
       <ref bean="jsonProvider"/>
       <ref bean="authenticationInterceptor#rest"/>