From 4c378bf66b2d73007ffb2a0a9e2e3fec19c68e2f Mon Sep 17 00:00:00 2001 From: Sutton <suttonsp@147dda3a90de.ant.amazon.com> Date: Tue, 16 Feb 2021 16:06:43 -0600 Subject: [PATCH] Filter class update --- .../logging/ResponseLogFilter.java | 14 ++++- .../utils/NotificationFilter.java | 61 ------------------- 2 files changed, 11 insertions(+), 64 deletions(-) delete mode 100644 notification-core/src/main/java/org/opengroup/osdu/notification/utils/NotificationFilter.java diff --git a/notification-core/src/main/java/org/opengroup/osdu/notification/logging/ResponseLogFilter.java b/notification-core/src/main/java/org/opengroup/osdu/notification/logging/ResponseLogFilter.java index 7f558a957..69aad1171 100644 --- a/notification-core/src/main/java/org/opengroup/osdu/notification/logging/ResponseLogFilter.java +++ b/notification-core/src/main/java/org/opengroup/osdu/notification/logging/ResponseLogFilter.java @@ -16,12 +16,14 @@ package org.opengroup.osdu.notification.logging; +import org.opengroup.osdu.core.common.http.ResponseHeadersFactory; import org.opengroup.osdu.core.common.logging.ILogger; import org.opengroup.osdu.core.common.model.http.DpsHeaders; import org.opengroup.osdu.core.common.model.http.Request; import org.opengroup.osdu.notification.di.RequestInfoExt; import static org.opengroup.osdu.core.common.http.ResponseHeaders.STANDARD_RESPONSE_HEADERS; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import javax.servlet.*; @@ -43,6 +45,12 @@ public class ResponseLogFilter implements Filter { @Autowired private ILogger logger; + private ResponseHeadersFactory responseHeadersFactory = new ResponseHeadersFactory(); + + // defaults to * for any front-end, string must be comma-delimited if more than one domain + @Value("${ACCESS_CONTROL_ALLOW_ORIGIN_DOMAINS:*}") + String ACCESS_CONTROL_ALLOW_ORIGIN_DOMAINS; + @Override public void init(FilterConfig filterConfig) { //do nothing @@ -85,9 +93,9 @@ public class ResponseLogFilter implements Filter { public void destroy() { } private void setResponseHeaders(HttpServletResponse httpServletResponse) { - Map<String, List<Object>> standardHeaders = STANDARD_RESPONSE_HEADERS; - for (Map.Entry<String, List<Object>> header : standardHeaders.entrySet()) { - httpServletResponse.addHeader(header.getKey(), header.getValue().toString()); + Map<String, String> responseHeaders = responseHeadersFactory.getResponseHeaders(ACCESS_CONTROL_ALLOW_ORIGIN_DOMAINS); + for (Map.Entry<String, String> header : responseHeaders.entrySet()) { + httpServletResponse.addHeader(header.getKey(), header.getValue()); } } } diff --git a/notification-core/src/main/java/org/opengroup/osdu/notification/utils/NotificationFilter.java b/notification-core/src/main/java/org/opengroup/osdu/notification/utils/NotificationFilter.java deleted file mode 100644 index 8c4ccf80d..000000000 --- a/notification-core/src/main/java/org/opengroup/osdu/notification/utils/NotificationFilter.java +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright © 2020 Amazon Web Services -// Copyright 2017-2019, Schlumberger -// -// 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 org.opengroup.osdu.notification.utils; - -import org.opengroup.osdu.core.common.http.ResponseHeadersFactory; -import org.opengroup.osdu.core.common.model.http.DpsHeaders; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Component; - -import javax.inject.Inject; -import javax.servlet.*; -import javax.servlet.http.HttpServletResponse; -import java.io.IOException; -import java.util.Map; - - -@Component -public class NotificationFilter implements Filter { - - @Inject - private DpsHeaders dpsHeaders; - - private ResponseHeadersFactory responseHeadersFactory = new ResponseHeadersFactory(); - - // defaults to * for any front-end, string must be comma-delimited if more than one domain - @Value("${ACCESS_CONTROL_ALLOW_ORIGIN_DOMAINS:*}") - String ACCESS_CONTROL_ALLOW_ORIGIN_DOMAINS; - - @Override - public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) - throws IOException, ServletException { - chain.doFilter(request, response); - - HttpServletResponse httpResponse = (HttpServletResponse) response; - - this.dpsHeaders.addCorrelationIdIfMissing(); - - Map<String, String> responseHeaders = responseHeadersFactory.getResponseHeaders(ACCESS_CONTROL_ALLOW_ORIGIN_DOMAINS); - for (Map.Entry<String, String> header : responseHeaders.entrySet()) { - httpResponse.setHeader(header.getKey(), header.getValue()); - } - httpResponse.addHeader(DpsHeaders.CORRELATION_ID, this.dpsHeaders.getCorrelationId()); - } - - @Override - public void destroy() { - } -} -- GitLab