diff --git a/src/main/java/com/kms/handler/AuthHandler.java b/src/main/java/com/kms/handler/AuthHandler.java index dab838d1e53b4f97d86c5cf585eb8a52499754bd..5cc3e4179b6fa6f96cde14b306ff8e331ef3c9b5 100644 --- a/src/main/java/com/kms/handler/AuthHandler.java +++ b/src/main/java/com/kms/handler/AuthHandler.java @@ -23,6 +23,13 @@ public class AuthHandler implements SOAPHandler<SOAPMessageContext> { @Override public boolean handleMessage(SOAPMessageContext soapMessageContext) { + final boolean messageHandled = + (boolean) soapMessageContext.getOrDefault("messageHandled-Auth", false); + + if (messageHandled) + return true; + + soapMessageContext.put("messageHandled-Auth", true); try { final SOAPHeader header = soapMessageContext.getMessage().getSOAPHeader(); final QName apiKeyQName = new QName(NAMESPACE, "apiKey"); diff --git a/src/main/java/com/kms/handler/CacheHandler.java b/src/main/java/com/kms/handler/CacheHandler.java index 5eb589acf1b0fdd9d84c3413b64da02c2b2f685a..babb5511365ba0c654abf4758f8833f3d550755d 100644 --- a/src/main/java/com/kms/handler/CacheHandler.java +++ b/src/main/java/com/kms/handler/CacheHandler.java @@ -32,10 +32,12 @@ public class CacheHandler implements SOAPHandler<SOAPMessageContext> { @Override public boolean handleMessage(SOAPMessageContext context) { final boolean messageHandled = - (boolean) context.getOrDefault("messageHandled", false); + (boolean) context.getOrDefault("messageHandled-Cache", false); - if (!messageHandled) + if (!messageHandled) { + context.put("messageHandled-Cache", true); return true; + } final boolean cacheResponse = (boolean) context.getOrDefault("cacheResponse", false);