You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by ff...@apache.org on 2020/07/07 18:48:08 UTC
[cxf] branch master updated: [CXF-8257]Logger no longer logs bad
requests
This is an automated email from the ASF dual-hosted git repository.
ffang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cxf.git
The following commit(s) were added to refs/heads/master by this push:
new da40460 [CXF-8257]Logger no longer logs bad requests
new 77d1544 Merge branch 'master' of github.com:apache/cxf
da40460 is described below
commit da4046011a8f0c70bbbd25001b2e08ac49c853d0
Author: Freeman Fang <fr...@gmail.com>
AuthorDate: Tue Jul 7 14:44:50 2020 -0400
[CXF-8257]Logger no longer logs bad requests
---
.../ext/logging/AbstractLoggingInterceptor.java | 2 +-
.../cxf/ext/logging/LoggingInInterceptor.java | 24 ++++++++++++++++++++++
2 files changed, 25 insertions(+), 1 deletion(-)
diff --git a/rt/features/logging/src/main/java/org/apache/cxf/ext/logging/AbstractLoggingInterceptor.java b/rt/features/logging/src/main/java/org/apache/cxf/ext/logging/AbstractLoggingInterceptor.java
index 9302a43..7927359 100644
--- a/rt/features/logging/src/main/java/org/apache/cxf/ext/logging/AbstractLoggingInterceptor.java
+++ b/rt/features/logging/src/main/java/org/apache/cxf/ext/logging/AbstractLoggingInterceptor.java
@@ -34,7 +34,7 @@ public abstract class AbstractLoggingInterceptor extends AbstractPhaseIntercepto
public static final int DEFAULT_LIMIT = 48 * 1024;
public static final int DEFAULT_THRESHOLD = -1;
public static final String CONTENT_SUPPRESSED = "--- Content suppressed ---";
- private static final String LIVE_LOGGING_PROP = "org.apache.cxf.logging.enable";
+ protected static final String LIVE_LOGGING_PROP = "org.apache.cxf.logging.enable";
protected int limit = DEFAULT_LIMIT;
protected long threshold = DEFAULT_THRESHOLD;
protected boolean logBinary;
diff --git a/rt/features/logging/src/main/java/org/apache/cxf/ext/logging/LoggingInInterceptor.java b/rt/features/logging/src/main/java/org/apache/cxf/ext/logging/LoggingInInterceptor.java
index db677f0..a5ed555 100644
--- a/rt/features/logging/src/main/java/org/apache/cxf/ext/logging/LoggingInInterceptor.java
+++ b/rt/features/logging/src/main/java/org/apache/cxf/ext/logging/LoggingInInterceptor.java
@@ -34,6 +34,7 @@ import org.apache.cxf.interceptor.Fault;
import org.apache.cxf.io.CachedOutputStream;
import org.apache.cxf.io.CachedWriter;
import org.apache.cxf.message.Message;
+import org.apache.cxf.phase.AbstractPhaseInterceptor;
import org.apache.cxf.phase.Phase;
import org.apache.cxf.phase.PhaseInterceptor;
@@ -42,6 +43,23 @@ import org.apache.cxf.phase.PhaseInterceptor;
*/
@NoJSR250Annotations
public class LoggingInInterceptor extends AbstractLoggingInterceptor {
+
+
+ class LoggingInFaultInterceptor extends AbstractPhaseInterceptor<Message> {
+ LoggingInFaultInterceptor() {
+ super(Phase.RECEIVE);
+ }
+
+ @Override
+ public void handleMessage(Message message) throws Fault {
+ }
+
+ @Override
+ public void handleFault(Message message) throws Fault {
+ LoggingInInterceptor.this.handleMessage(message);
+ }
+ }
+
public LoggingInInterceptor() {
this(new Slf4jVerboseEventSender());
@@ -58,12 +76,18 @@ public class LoggingInInterceptor extends AbstractLoggingInterceptor {
public Collection<PhaseInterceptor<? extends Message>> getAdditionalInterceptors() {
Collection<PhaseInterceptor<? extends Message>> ret = new ArrayList<>();
ret.add(new WireTapIn(getWireTapLimit(), threshold));
+ ret.add(new LoggingInFaultInterceptor());
return ret;
}
public void handleMessage(Message message) throws Fault {
if (isLoggingDisabledNow(message)) {
return;
+ } else {
+ //ensure only logging once for a certain message
+ //this can prevent message logging again when fault
+ //happen after PRE_INVOKE phase(rewind calls into LoggingInFaultInterceptor)
+ message.put(LIVE_LOGGING_PROP, Boolean.FALSE);
}
createExchangeId(message);
final LogEvent event = eventMapper.map(message);