cxf-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From serg...@apache.org
Subject cxf git commit: [CXF-7365] Making it work on the response path too
Date Tue, 09 May 2017 13:15:59 GMT
Repository: cxf
Updated Branches:
  refs/heads/3.1.x-fixes b9c9e063b -> 916dbc7e5


[CXF-7365] Making it work on the response path too


Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/916dbc7e
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/916dbc7e
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/916dbc7e

Branch: refs/heads/3.1.x-fixes
Commit: 916dbc7e5fd06e2c188775d29c950af8e411be11
Parents: b9c9e06
Author: Sergey Beryozkin <sberyozkin@gmail.com>
Authored: Tue May 9 14:12:31 2017 +0100
Committer: Sergey Beryozkin <sberyozkin@gmail.com>
Committed: Tue May 9 14:15:46 2017 +0100

----------------------------------------------------------------------
 .../JwsMultipartClientRequestFilter.java        | 59 ++----------------
 .../JwsMultipartContainerRequestFilter.java     | 25 +-------
 .../JwsMultipartSignatureInFilter.java          | 28 +++++++--
 .../JwsMultipartSignatureProvider.java          | 63 --------------------
 .../systest/jaxrs/security/jose/BookStore.java  |  6 +-
 .../jose/jwejws/JAXRSJwsMultipartTest.java      | 14 +++--
 .../security/jose/jwejws/serverMultipart.xml    | 17 +++++-
 7 files changed, 58 insertions(+), 154 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/916dbc7e/rt/rs/security/jose-parent/jose-jaxrs/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/multipart/JwsMultipartClientRequestFilter.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/jose-parent/jose-jaxrs/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/multipart/JwsMultipartClientRequestFilter.java
b/rt/rs/security/jose-parent/jose-jaxrs/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/multipart/JwsMultipartClientRequestFilter.java
index c13d0a5..79d21c2 100644
--- a/rt/rs/security/jose-parent/jose-jaxrs/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/multipart/JwsMultipartClientRequestFilter.java
+++ b/rt/rs/security/jose-parent/jose-jaxrs/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/multipart/JwsMultipartClientRequestFilter.java
@@ -19,73 +19,26 @@
 package org.apache.cxf.rs.security.jose.jaxrs.multipart;
 
 import java.io.IOException;
-import java.util.ArrayList;
 import java.util.List;
 
-import javax.ws.rs.ProcessingException;
+import javax.annotation.Priority;
 import javax.ws.rs.client.ClientRequestContext;
 import javax.ws.rs.client.ClientRequestFilter;
 import javax.ws.rs.core.MediaType;
 
-import org.apache.cxf.helpers.CastUtils;
-import org.apache.cxf.jaxrs.ext.multipart.Attachment;
-import org.apache.cxf.jaxrs.ext.multipart.MultipartBody;
-import org.apache.cxf.jaxrs.utils.multipart.AttachmentUtils;
-import org.apache.cxf.rs.security.jose.common.JoseConstants;
-import org.apache.cxf.rs.security.jose.jws.JwsDetachedSignature;
-import org.apache.cxf.rs.security.jose.jws.JwsHeaders;
-import org.apache.cxf.rs.security.jose.jws.JwsSignature;
-import org.apache.cxf.rs.security.jose.jws.JwsSignatureProvider;
-import org.apache.cxf.rs.security.jose.jws.JwsUtils;
+import org.apache.cxf.rs.security.jose.jaxrs.Priorities;
 
-public class JwsMultipartClientRequestFilter implements ClientRequestFilter {
+@Priority(Priorities.JWS_WRITE_PRIORITY)
+public class JwsMultipartClientRequestFilter extends AbstractJwsMultipartSignatureFilter

+    implements ClientRequestFilter {
 
-    private JwsSignatureProvider sigProvider;
-    private boolean supportSinglePartOnly = true;
-
-    public void setSignatureProvider(JwsSignatureProvider signatureProvider) {
-        this.sigProvider = signatureProvider;
-    }
-    
     @Override
     public void filter(ClientRequestContext ctx) throws IOException {
         MediaType contentType = ctx.getMediaType();
         if (contentType != null && contentType.getType().equals("multipart")) {
-            Object rootEntity = ctx.getEntity();
-            List<Object> parts = null;
-            
-            if (rootEntity instanceof MultipartBody) {
-                parts = CastUtils.cast(((MultipartBody)rootEntity).getAllAttachments());
-            } else {
-                parts = new ArrayList<Object>();
-                if (rootEntity instanceof List) {
-                    List<Object> entityList = CastUtils.cast((List<?>)rootEntity);
-                    parts.addAll(entityList);
-                } else {
-                    parts.add(rootEntity);
-                }
-            }
-            if (supportSinglePartOnly && parts.size() > 1) {
-                throw new ProcessingException("Single part only is supported");
-            }
-            
-            JwsHeaders headers = new JwsHeaders();
-            JwsSignatureProvider theSigProvider = sigProvider != null ? sigProvider
-                : JwsUtils.loadSignatureProvider(headers, true);
-            JwsSignature jwsSignature = theSigProvider.createJwsSignature(headers);
-            AttachmentUtils.addMultipartOutFilter(new JwsMultipartSignatureOutFilter(jwsSignature));
-            
-            
-            JwsDetachedSignature jws = new JwsDetachedSignature(headers, jwsSignature);
-            
-            Attachment jwsPart = new Attachment("signature", JoseConstants.MEDIA_TYPE_JOSE,
jws);
-            parts.add(jwsPart);
+            List<Object> parts = getAttachmentParts(ctx.getEntity());
             ctx.setEntity(parts);
         }
         
     }
-
-    public void setSupportSinglePartOnly(boolean supportSinglePartOnly) {
-        this.supportSinglePartOnly = supportSinglePartOnly;
-    }
 }

http://git-wip-us.apache.org/repos/asf/cxf/blob/916dbc7e/rt/rs/security/jose-parent/jose-jaxrs/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/multipart/JwsMultipartContainerRequestFilter.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/jose-parent/jose-jaxrs/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/multipart/JwsMultipartContainerRequestFilter.java
b/rt/rs/security/jose-parent/jose-jaxrs/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/multipart/JwsMultipartContainerRequestFilter.java
index eb69543..7a42318 100644
--- a/rt/rs/security/jose-parent/jose-jaxrs/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/multipart/JwsMultipartContainerRequestFilter.java
+++ b/rt/rs/security/jose-parent/jose-jaxrs/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/multipart/JwsMultipartContainerRequestFilter.java
@@ -24,36 +24,17 @@ import javax.annotation.Priority;
 import javax.ws.rs.container.ContainerRequestContext;
 import javax.ws.rs.container.ContainerRequestFilter;
 import javax.ws.rs.container.PreMatching;
-import javax.ws.rs.core.MediaType;
 
-import org.apache.cxf.jaxrs.ext.multipart.MultipartInputFilter;
-import org.apache.cxf.jaxrs.utils.multipart.AttachmentUtils;
 import org.apache.cxf.rs.security.jose.jaxrs.Priorities;
-import org.apache.cxf.rs.security.jose.jws.JwsSignatureVerifier;
 
 @PreMatching
 @Priority(Priorities.JWS_SERVER_READ_PRIORITY)
-public class JwsMultipartContainerRequestFilter implements ContainerRequestFilter {
-    
-    private JwsSignatureVerifier sigVerifier;
-    private boolean supportSinglePartOnly = true;
+public class JwsMultipartContainerRequestFilter extends AbstractJwsMultipartVerificationFilter
+    implements ContainerRequestFilter {
     
     @Override
     public void filter(ContainerRequestContext ctx) throws IOException {
-        MediaType contentType = ctx.getMediaType();
-        if (contentType != null && contentType.getType().equals("multipart")) {
-            MultipartInputFilter jwsFilter = sigVerifier == null 
-                ? new JwsMultipartSignatureInFilter(supportSinglePartOnly) 
-                : new JwsMultipartSignatureInFilter(sigVerifier, supportSinglePartOnly);

-            AttachmentUtils.addMultipartInFilter(jwsFilter); 
-        }
+        addMultipartFilterIfNeeded(ctx.getMediaType());
         
     }
-
-    public void setSigVerifier(JwsSignatureVerifier sigVerifier) {
-        this.sigVerifier = sigVerifier;
-    }
-    public void setSupportSinglePartOnly(boolean supportSinglePartOnly) {
-        this.supportSinglePartOnly = supportSinglePartOnly;
-    }
 }

http://git-wip-us.apache.org/repos/asf/cxf/blob/916dbc7e/rt/rs/security/jose-parent/jose-jaxrs/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/multipart/JwsMultipartSignatureInFilter.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/jose-parent/jose-jaxrs/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/multipart/JwsMultipartSignatureInFilter.java
b/rt/rs/security/jose-parent/jose-jaxrs/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/multipart/JwsMultipartSignatureInFilter.java
index 547fa58..4b06233 100644
--- a/rt/rs/security/jose-parent/jose-jaxrs/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/multipart/JwsMultipartSignatureInFilter.java
+++ b/rt/rs/security/jose-parent/jose-jaxrs/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/multipart/JwsMultipartSignatureInFilter.java
@@ -21,13 +21,17 @@ package org.apache.cxf.rs.security.jose.jaxrs.multipart;
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.List;
+import java.util.Properties;
 
 import org.apache.cxf.helpers.IOUtils;
 import org.apache.cxf.jaxrs.ext.multipart.Attachment;
 import org.apache.cxf.jaxrs.ext.multipart.MultipartInputFilter;
 import org.apache.cxf.jaxrs.json.basic.JsonMapObjectReaderWriter;
 import org.apache.cxf.jaxrs.utils.ExceptionUtils;
+import org.apache.cxf.message.Message;
+import org.apache.cxf.rs.security.jose.common.JoseConstants;
 import org.apache.cxf.rs.security.jose.common.JoseUtils;
+import org.apache.cxf.rs.security.jose.common.KeyManagementUtils;
 import org.apache.cxf.rs.security.jose.jws.JwsHeaders;
 import org.apache.cxf.rs.security.jose.jws.JwsInputStream;
 import org.apache.cxf.rs.security.jose.jws.JwsSignatureVerifier;
@@ -38,12 +42,14 @@ public class JwsMultipartSignatureInFilter implements MultipartInputFilter
{
 
     private JwsSignatureVerifier verifier;
     private boolean supportSinglePartOnly;
-    
-    public JwsMultipartSignatureInFilter(boolean supportSinglePartOnly) {
-        this(null, supportSinglePartOnly);
+    private Message message;
+    public JwsMultipartSignatureInFilter(Message message, boolean supportSinglePartOnly)
{
+        this(message, null, supportSinglePartOnly);
     }
     
-    public JwsMultipartSignatureInFilter(JwsSignatureVerifier verifier, boolean supportSinglePartOnly)
{
+    public JwsMultipartSignatureInFilter(Message message, JwsSignatureVerifier verifier,

+                                         boolean supportSinglePartOnly) {
+        this.message = message;
         this.verifier = verifier;
         this.supportSinglePartOnly = supportSinglePartOnly;
     }
@@ -69,8 +75,18 @@ public class JwsMultipartSignatureInFilter implements MultipartInputFilter
{
         JwsHeaders headers = new JwsHeaders(
                                  new JsonMapObjectReaderWriter().fromJson(
                                      JoseUtils.decodeToString(parts[0])));
-        JwsSignatureVerifier theVerifier = 
-            verifier == null ? JwsUtils.loadSignatureVerifier(headers, true) : verifier;
+        
+        JwsSignatureVerifier theVerifier = null;
+        if (verifier == null) {
+            Properties props = KeyManagementUtils.loadStoreProperties(message, true,
+                                                   JoseConstants.RSSEC_SIGNATURE_IN_PROPS,
+                                                   JoseConstants.RSSEC_SIGNATURE_PROPS);
+            
+            theVerifier = JwsUtils.loadSignatureVerifier(message, props, headers, false);
+        } else {
+            theVerifier = verifier;
+        }
+        
         
         JwsVerificationSignature sig = theVerifier.createJwsVerificationSignature(headers);
         if (sig == null) {

http://git-wip-us.apache.org/repos/asf/cxf/blob/916dbc7e/rt/rs/security/jose-parent/jose-jaxrs/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/multipart/JwsMultipartSignatureProvider.java
----------------------------------------------------------------------
diff --git a/rt/rs/security/jose-parent/jose-jaxrs/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/multipart/JwsMultipartSignatureProvider.java
b/rt/rs/security/jose-parent/jose-jaxrs/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/multipart/JwsMultipartSignatureProvider.java
deleted file mode 100644
index f6cd1fa..0000000
--- a/rt/rs/security/jose-parent/jose-jaxrs/src/main/java/org/apache/cxf/rs/security/jose/jaxrs/multipart/JwsMultipartSignatureProvider.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.cxf.rs.security.jose.jaxrs.multipart;
-
-import java.io.IOException;
-import java.io.OutputStream;
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Type;
-
-import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.ext.MessageBodyWriter;
-
-import org.apache.cxf.common.util.Base64UrlUtility;
-import org.apache.cxf.common.util.StringUtils;
-import org.apache.cxf.jaxrs.json.basic.JsonMapObjectReaderWriter;
-import org.apache.cxf.rs.security.jose.common.JoseUtils;
-import org.apache.cxf.rs.security.jose.jws.JwsDetachedSignature;
-
-public class JwsMultipartSignatureProvider implements MessageBodyWriter<JwsDetachedSignature>
{
-    private JsonMapObjectReaderWriter writer = new JsonMapObjectReaderWriter();
-    @Override
-    public long getSize(JwsDetachedSignature arg0, Class<?> arg1, Type arg2, Annotation[]
arg3, MediaType arg4) {
-        return -1;
-    }
-
-    @Override
-    public boolean isWriteable(Class<?> cls, Type t, Annotation[] anns, MediaType mt)
{
-        return true;
-    }
-
-    @Override
-    public void writeTo(JwsDetachedSignature parts, Class<?> cls, Type t, Annotation[]
anns, MediaType mt,
-                        MultivaluedMap<String, Object> headers, OutputStream os)
-                            throws IOException, WebApplicationException {
-        JoseUtils.traceHeaders(parts.getHeaders());
-        byte[] headerBytes = StringUtils.toBytesUTF8(writer.toJson(parts.getHeaders()));
-        Base64UrlUtility.encodeAndStream(headerBytes, 0, headerBytes.length, os);
-        os.write(new byte[]{'.'});
-        
-        byte[] finalBytes = parts.getSignature().sign();
-        os.write(new byte[]{'.'});
-        Base64UrlUtility.encodeAndStream(finalBytes, 0, finalBytes.length, os);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cxf/blob/916dbc7e/systests/rs-security/src/test/java/org/apache/cxf/systest/jaxrs/security/jose/BookStore.java
----------------------------------------------------------------------
diff --git a/systests/rs-security/src/test/java/org/apache/cxf/systest/jaxrs/security/jose/BookStore.java
b/systests/rs-security/src/test/java/org/apache/cxf/systest/jaxrs/security/jose/BookStore.java
index 9ff1c19..7d6a17e 100644
--- a/systests/rs-security/src/test/java/org/apache/cxf/systest/jaxrs/security/jose/BookStore.java
+++ b/systests/rs-security/src/test/java/org/apache/cxf/systest/jaxrs/security/jose/BookStore.java
@@ -62,15 +62,17 @@ public class BookStore {
     
     @POST
     @Path("/books")
-    @Produces("application/xml")
+    @Produces("multipart/related")
     @Consumes("multipart/related")
+    @Multipart(type = "application/xml")
     public Book echoBookMultipart(@Multipart(type = "application/xml") Book book) {
         return book;
     }
     @POST
     @Path("/booksList")
-    @Produces("application/xml")
+    @Produces("multipart/related")
     @Consumes("multipart/related")
+    @Multipart(type = "application/xml")
     public List<Book> echoBooksMultipart(@Multipart(type = "application/xml") List<Book>
books) {
         return books;
     }

http://git-wip-us.apache.org/repos/asf/cxf/blob/916dbc7e/systests/rs-security/src/test/java/org/apache/cxf/systest/jaxrs/security/jose/jwejws/JAXRSJwsMultipartTest.java
----------------------------------------------------------------------
diff --git a/systests/rs-security/src/test/java/org/apache/cxf/systest/jaxrs/security/jose/jwejws/JAXRSJwsMultipartTest.java
b/systests/rs-security/src/test/java/org/apache/cxf/systest/jaxrs/security/jose/jwejws/JAXRSJwsMultipartTest.java
index ed60ee8..54201a9 100644
--- a/systests/rs-security/src/test/java/org/apache/cxf/systest/jaxrs/security/jose/jwejws/JAXRSJwsMultipartTest.java
+++ b/systests/rs-security/src/test/java/org/apache/cxf/systest/jaxrs/security/jose/jwejws/JAXRSJwsMultipartTest.java
@@ -32,8 +32,9 @@ import org.apache.cxf.Bus;
 import org.apache.cxf.bus.spring.SpringBusFactory;
 import org.apache.cxf.jaxrs.client.JAXRSClientFactory;
 import org.apache.cxf.jaxrs.client.JAXRSClientFactoryBean;
+import org.apache.cxf.rs.security.jose.jaxrs.JwsDetachedSignatureProvider;
 import org.apache.cxf.rs.security.jose.jaxrs.multipart.JwsMultipartClientRequestFilter;
-import org.apache.cxf.rs.security.jose.jaxrs.multipart.JwsMultipartSignatureProvider;
+import org.apache.cxf.rs.security.jose.jaxrs.multipart.JwsMultipartClientResponseFilter;
 import org.apache.cxf.systest.jaxrs.security.Book;
 import org.apache.cxf.systest.jaxrs.security.jose.BookStore;
 import org.apache.cxf.testutil.common.AbstractBusClientServerTestBase;
@@ -151,10 +152,13 @@ public class JAXRSJwsMultipartTest extends AbstractBusClientServerTestBase
{
         bean.setServiceClass(BookStore.class);
         bean.setAddress(address);
         List<Object> providers = new LinkedList<Object>();
-        JwsMultipartClientRequestFilter filter = new JwsMultipartClientRequestFilter();
-        filter.setSupportSinglePartOnly(supportSinglePart);
-        providers.add(filter);
-        providers.add(new JwsMultipartSignatureProvider());
+        JwsMultipartClientRequestFilter outFilter = new JwsMultipartClientRequestFilter();
+        outFilter.setSupportSinglePartOnly(supportSinglePart);
+        providers.add(outFilter);
+        JwsMultipartClientResponseFilter inFilter = new JwsMultipartClientResponseFilter();
+        inFilter.setSupportSinglePartOnly(supportSinglePart);
+        providers.add(inFilter);
+        providers.add(new JwsDetachedSignatureProvider());
         bean.setProviders(providers);
         return bean;
     }

http://git-wip-us.apache.org/repos/asf/cxf/blob/916dbc7e/systests/rs-security/src/test/resources/org/apache/cxf/systest/jaxrs/security/jose/jwejws/serverMultipart.xml
----------------------------------------------------------------------
diff --git a/systests/rs-security/src/test/resources/org/apache/cxf/systest/jaxrs/security/jose/jwejws/serverMultipart.xml
b/systests/rs-security/src/test/resources/org/apache/cxf/systest/jaxrs/security/jose/jwejws/serverMultipart.xml
index a63fa88..0a2a3b4 100644
--- a/systests/rs-security/src/test/resources/org/apache/cxf/systest/jaxrs/security/jose/jwejws/serverMultipart.xml
+++ b/systests/rs-security/src/test/resources/org/apache/cxf/systest/jaxrs/security/jose/jwejws/serverMultipart.xml
@@ -40,7 +40,15 @@ under the License.
     <bean id="serviceBean" class="org.apache.cxf.systest.jaxrs.security.jose.BookStore"/>
     
     <bean id="jwsInMultipartFilter" class="org.apache.cxf.rs.security.jose.jaxrs.multipart.JwsMultipartContainerRequestFilter"/>
+    <bean id="jwsOutMultipartFilter" class="org.apache.cxf.rs.security.jose.jaxrs.multipart.JwsMultipartContainerResponseFilter"/>
+    <bean id="jwsDetachedSignatureWriter" class="org.apache.cxf.rs.security.jose.jaxrs.JwsDetachedSignatureProvider"/>
     <bean id="jwsInMultipartModificationFilter" class="org.apache.cxf.systest.jaxrs.security.jose.jwejws.MultipartModificationFilter"/>
+    <bean id="jwsInMultipartFilterManyParts" class="org.apache.cxf.rs.security.jose.jaxrs.multipart.JwsMultipartContainerRequestFilter">
+        <property name="supportSinglePartOnly" value="false"/>
+    </bean>
+    <bean id="jwsOutMultipartFilterManyParts" class="org.apache.cxf.rs.security.jose.jaxrs.multipart.JwsMultipartContainerResponseFilter">
+        <property name="supportSinglePartOnly" value="false"/>
+    </bean>
     
     <jaxrs:server address="https://localhost:${testutil.ports.jaxrs-jws-multipart}/jwsjwkhmacSinglePart">
         <jaxrs:serviceBeans>
@@ -48,6 +56,8 @@ under the License.
         </jaxrs:serviceBeans>
         <jaxrs:providers>
             <ref bean="jwsInMultipartFilter"/>
+            <ref bean="jwsOutMultipartFilter"/>
+            <ref bean="jwsDetachedSignatureWriter"/>
         </jaxrs:providers>
         <jaxrs:properties>
             <entry key="rs.security.signature.properties" value="org/apache/cxf/systest/jaxrs/security/secret.jwk.properties"/>
@@ -59,6 +69,8 @@ under the License.
         </jaxrs:serviceBeans>
         <jaxrs:providers>
             <ref bean="jwsInMultipartFilter"/>
+            <ref bean="jwsOutMultipartFilter"/>
+            <ref bean="jwsDetachedSignatureWriter"/>
         </jaxrs:providers>
         <jaxrs:properties>
             <entry key="rs.security.signature.properties" value="org/apache/cxf/systest/jaxrs/security/alice.jwk.properties"/>
@@ -76,15 +88,14 @@ under the License.
             <entry key="rs.security.signature.properties" value="org/apache/cxf/systest/jaxrs/security/secret.jwk.properties"/>
         </jaxrs:properties>
     </jaxrs:server>
-    <bean id="jwsInMultipartFilterManyParts" class="org.apache.cxf.rs.security.jose.jaxrs.multipart.JwsMultipartContainerRequestFilter">
-        <property name="supportSinglePartOnly" value="false"/>
-    </bean>
     <jaxrs:server address="https://localhost:${testutil.ports.jaxrs-jws-multipart}/jwsjwkhmacManyParts">
         <jaxrs:serviceBeans>
             <ref bean="serviceBean"/>
         </jaxrs:serviceBeans>
         <jaxrs:providers>
             <ref bean="jwsInMultipartFilterManyParts"/>
+            <ref bean="jwsOutMultipartFilterManyParts"/>
+            <ref bean="jwsDetachedSignatureWriter"/>
         </jaxrs:providers>
         <jaxrs:properties>
             <entry key="rs.security.signature.properties" value="org/apache/cxf/systest/jaxrs/security/secret.jwk.properties"/>


Mime
View raw message