This is an automated email from the ASF dual-hosted git repository. myrle pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/fineract-cn-api.git
commit f84927be951b6277efb9c33c24372e48bd970c52 Author: mgeiss <[email protected]> AuthorDate: Wed Sep 27 07:31:27 2017 +0200 Added interceptor to set content length if no body is given --- .../java/io/mifos/core/api/util/ApiFactory.java | 2 ++ .../mifos/core/api/util/EmptyBodyInterceptor.java | 42 ++++++++++++++++++++++ 2 files changed, 44 insertions(+) diff --git a/src/main/java/io/mifos/core/api/util/ApiFactory.java b/src/main/java/io/mifos/core/api/util/ApiFactory.java index a2535c1..df67d44 100644 --- a/src/main/java/io/mifos/core/api/util/ApiFactory.java +++ b/src/main/java/io/mifos/core/api/util/ApiFactory.java @@ -47,6 +47,7 @@ public class ApiFactory { .errorDecoder(new AnnotatedErrorDecoder(logger, clazz)) .requestInterceptor(new TenantedTargetInterceptor()) .requestInterceptor(new TokenedTargetInterceptor()) + .requestInterceptor(new EmptyBodyInterceptor()) .requestInterceptor(client.getCookieInterceptor()) .decoder(new GsonDecoder()) .encoder(new GsonEncoder()) @@ -61,6 +62,7 @@ public class ApiFactory { .errorDecoder(new AnnotatedErrorDecoder(logger, clazz)) .requestInterceptor(new TenantedTargetInterceptor()) .requestInterceptor(new TokenedTargetInterceptor()) + .requestInterceptor(new EmptyBodyInterceptor()) .requestInterceptor(client.getCookieInterceptor()) .decoder(new GsonDecoder()) .encoder(new GsonEncoder()) diff --git a/src/main/java/io/mifos/core/api/util/EmptyBodyInterceptor.java b/src/main/java/io/mifos/core/api/util/EmptyBodyInterceptor.java new file mode 100644 index 0000000..dbfd105 --- /dev/null +++ b/src/main/java/io/mifos/core/api/util/EmptyBodyInterceptor.java @@ -0,0 +1,42 @@ +/* + * Copyright 2017 The Mifos Initiative. + * + * Licensed 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 io.mifos.core.api.util; + +import feign.RequestInterceptor; +import feign.RequestTemplate; +import org.springframework.web.bind.annotation.RequestMethod; + +import java.nio.charset.Charset; + +/** + * Sets the content length of a request to zero if the request is of type POST or PUT, and contains + * no request body. + */ +public class EmptyBodyInterceptor implements RequestInterceptor { + + EmptyBodyInterceptor() { + super(); + } + + @Override + public void apply(final RequestTemplate template) { + if ((template.method().equalsIgnoreCase(RequestMethod.POST.name()) + || template.method().equalsIgnoreCase(RequestMethod.PUT.name())) + && template.body() == null) { + template.body(new byte[0], Charset.defaultCharset()); + } + } +} -- To stop receiving notification emails like this one, please contact [email protected].
