diff --git a/hadoop-common-project/hadoop-kms/src/main/java/org/apache/hadoop/crypto/key/kms/server/KMSAuthenticationFilter.java b/hadoop-common-project/hadoop-kms/src/main/java/org/apache/hadoop/crypto/key/kms/server/KMSAuthenticationFilter.java index 60f191807d8..928a8aa48f7 100644 --- a/hadoop-common-project/hadoop-kms/src/main/java/org/apache/hadoop/crypto/key/kms/server/KMSAuthenticationFilter.java +++ b/hadoop-common-project/hadoop-kms/src/main/java/org/apache/hadoop/crypto/key/kms/server/KMSAuthenticationFilter.java @@ -145,9 +145,13 @@ public void doFilter(ServletRequest request, ServletResponse response, requestURL.append("?").append(queryString); } - KMSWebApp.getKMSAudit().unauthenticated( - request.getRemoteHost(), method, requestURL.toString(), - kmsResponse.msg); + if (!method.equals("OPTIONS")) { + // an HTTP OPTIONS request is made as part of the SPNEGO authentication + // sequence. We do not need to audit log it, since it doesn't belong + // to KMS context. KMS server doesn't handle OPTIONS either. + KMSWebApp.getKMSAudit().unauthenticated(request.getRemoteHost(), method, + requestURL.toString(), kmsResponse.msg); + } } }