aboutsummaryrefslogtreecommitdiffstats
path: root/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/server/filters/ActivitySpecSessionContextFilter.java
diff options
context:
space:
mode:
authorsheetalm <sheetal.mudholkar@amdocs.com>2018-02-20 19:06:27 +0530
committerVitaly Emporopulo <Vitaliy.Emporopulo@amdocs.com>2018-03-08 08:50:18 +0000
commit297209b45b403e9b314ebeb1140886e00ffd3f6d (patch)
treea8ba88380016fed0d1f28fbddfc4d4909ca22165 /services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/server/filters/ActivitySpecSessionContextFilter.java
parent2b60bd08c6b209c0817fac84970c35df4abca6ed (diff)
Activity Spec Service - Implementation
Correcting error message. InternalEmptyObject not required to be serializable. Fixed review comments on Patch Set 10. Not all fixed Adding services profile in main sdc pom.Moving Static imports at end. Patch Set 7 changes Patch Set 6 - Removing javax.inject. Remove user from interface and Changing scope to be singleton. Correcting error message Patch Set 4 Not fixing Spring related review comments in this patch set Patch Set 4 Fixed review comments related to unused dependency Fixed review comments for plugin version. Corrected License Adding Activity Spec Service Implementation Not adding to main sdc pom as of now Change-Id: I5285c0ab3b71b492d18ca442ebd52b59ab0eabdc Issue-ID: SDC-1048 Signed-off-by: sheetalm <sheetal.mudholkar@amdocs.com>
Diffstat (limited to 'services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/server/filters/ActivitySpecSessionContextFilter.java')
-rw-r--r--services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/server/filters/ActivitySpecSessionContextFilter.java83
1 files changed, 83 insertions, 0 deletions
diff --git a/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/server/filters/ActivitySpecSessionContextFilter.java b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/server/filters/ActivitySpecSessionContextFilter.java
new file mode 100644
index 0000000000..715d0961e6
--- /dev/null
+++ b/services/activity-spec/activity-spec-web/activity-spec-service/src/main/java/org/openecomp/activityspec/api/server/filters/ActivitySpecSessionContextFilter.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright © 2016-2018 European Support Limited
+ *
+ * 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.openecomp.activityspec.api.server.filters;
+
+import java.io.IOException;
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.ws.rs.core.HttpHeaders;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response.Status;
+import org.apache.commons.lang.StringUtils;
+import org.openecomp.sdc.common.session.SessionContextProvider;
+import org.openecomp.sdc.common.session.SessionContextProviderFactory;
+
+import static org.openecomp.activityspec.utils.ActivitySpecConstant.TENANT;
+import static org.openecomp.activityspec.utils.ActivitySpecConstant.USER;
+import static org.openecomp.activityspec.utils.ActivitySpecConstant.USER_ID_HEADER_PARAM;
+
+public class ActivitySpecSessionContextFilter implements Filter {
+
+ private static final String MESSAGE_USER_MAY_NOT_BE_NULL = "{\"message\": \"User ID can not be null\"}";
+
+ @Override
+ public void init(FilterConfig filterConfig) {
+ //No ActivitySpec specific initialization required
+ }
+
+ @Override
+ public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse,
+ FilterChain filterChain) throws IOException, ServletException {
+
+ final String userHeader = ((HttpServletRequest) servletRequest).getHeader(USER_ID_HEADER_PARAM);
+
+ // Not a real security, just make sure the request
+ // has passed some authentication gateway
+ if (StringUtils.isEmpty(userHeader)) {
+ sendErrorResponse(servletResponse);
+ return;
+ }
+
+ SessionContextProvider contextProvider = SessionContextProviderFactory.getInstance().createInterface();
+
+ try {
+ // use the system-wide user and tenant
+ contextProvider.create(USER, TENANT);
+ filterChain.doFilter(servletRequest, servletResponse);
+ } finally {
+ contextProvider.close();
+ }
+ }
+
+ private void sendErrorResponse(ServletResponse servletResponse) throws IOException {
+ HttpServletResponse httpServletResponse = (HttpServletResponse) servletResponse;
+ httpServletResponse.setHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON);
+ httpServletResponse.setStatus(Status.UNAUTHORIZED.getStatusCode());
+ servletResponse.getOutputStream().write(MESSAGE_USER_MAY_NOT_BE_NULL.getBytes());
+ }
+
+ @Override
+ public void destroy() {
+ //No ActivitySpec specific destroy required
+ }
+}