aboutsummaryrefslogtreecommitdiffstats
path: root/common-app-api/src/main/java/org/openecomp/sdc/common/util/ThreadLocalsHolder.java
diff options
context:
space:
mode:
Diffstat (limited to 'common-app-api/src/main/java/org/openecomp/sdc/common/util/ThreadLocalsHolder.java')
-rw-r--r--common-app-api/src/main/java/org/openecomp/sdc/common/util/ThreadLocalsHolder.java92
1 files changed, 65 insertions, 27 deletions
diff --git a/common-app-api/src/main/java/org/openecomp/sdc/common/util/ThreadLocalsHolder.java b/common-app-api/src/main/java/org/openecomp/sdc/common/util/ThreadLocalsHolder.java
index dcba5711d1..e14c98ee8f 100644
--- a/common-app-api/src/main/java/org/openecomp/sdc/common/util/ThreadLocalsHolder.java
+++ b/common-app-api/src/main/java/org/openecomp/sdc/common/util/ThreadLocalsHolder.java
@@ -7,9 +7,9 @@
* 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.
@@ -20,39 +20,77 @@
package org.openecomp.sdc.common.util;
+import org.openecomp.sdc.common.api.FilterDecisionEnum;
+import org.openecomp.sdc.common.datastructure.UserContext;
+
public class ThreadLocalsHolder {
- private static final ThreadLocal<String> UUID_THREAD_LOCAL = new ThreadLocal<>();
- private static final ThreadLocal<Long> REQUEST_START_TIME_THREAD_LOCAL = new ThreadLocal<>();
- private static final ThreadLocal<Boolean> IS_MDC_PROCESSED_THREAD_LOCAL = ThreadLocal.withInitial(() -> false);
+ private static final ThreadLocal<String> uuidThreadLocal = new ThreadLocal<>();
+ private static final ThreadLocal<Long> requestStartTimeThreadLocal = new ThreadLocal<>();
+ private static final ThreadLocal<FilterDecisionEnum> apiType = new ThreadLocal<>();
+ private static final ThreadLocal<Boolean> isMdcProcessedThreadLocal = new ThreadLocal<Boolean>() {
+ @Override
+ protected Boolean initialValue() {
+ return false;
+ }
+ };
- public static void setMdcProcessed(Boolean isMdcProcessed) {
- IS_MDC_PROCESSED_THREAD_LOCAL.set(isMdcProcessed);
- }
- public static void setUuid(String uuid) {
- UUID_THREAD_LOCAL.set(uuid);
- }
+ private static final ThreadLocal<UserContext> userContextThreadLocal = new ThreadLocal<>();
- public static void setRequestStartTime(Long requestStartTime) {
- REQUEST_START_TIME_THREAD_LOCAL.set(requestStartTime);
- }
+ public static final UserContext getUserContext() {return userContextThreadLocal.get(); }
- public static String getUuid() {
- return UUID_THREAD_LOCAL.get();
- }
+ public static void setUserContext(UserContext userContext) {userContextThreadLocal.set(userContext); }
- public static Long getRequestStartTime() {
- return REQUEST_START_TIME_THREAD_LOCAL.get();
- }
+ public static void setMdcProcessed(Boolean isMdcProcessed) {
+ isMdcProcessedThreadLocal.set(isMdcProcessed);
+ }
- public static Boolean isMdcProcessed() {
- return IS_MDC_PROCESSED_THREAD_LOCAL.get();
- }
+ public static void setUuid(String uuid) {
+ uuidThreadLocal.set(uuid);
+ }
+
+ public static void setRequestStartTime(Long requestStartTime) {
+ requestStartTimeThreadLocal.set(requestStartTime);
+ }
- public static void cleanup() {
- UUID_THREAD_LOCAL.remove();
- REQUEST_START_TIME_THREAD_LOCAL.remove();
- IS_MDC_PROCESSED_THREAD_LOCAL.remove();
+ public static String getUuid() {
+ return uuidThreadLocal.get();
+ }
+
+ public static Long getRequestStartTime() {
+ return requestStartTimeThreadLocal.get();
+ }
+
+ public static Boolean isMdcProcessed() {
+ return isMdcProcessedThreadLocal.get();
+ }
+
+ public static void cleanup() {
+ uuidThreadLocal.remove();
+ requestStartTimeThreadLocal.remove();
+ isMdcProcessedThreadLocal.remove();
+ userContextThreadLocal.remove();
+ apiType.remove();
+ }
+
+ public static FilterDecisionEnum getApiType() {
+ return apiType.get();
+ }
+ public static void setApiType(FilterDecisionEnum filterDecisionEnum) {
+ apiType.set(filterDecisionEnum);
+ }
+
+
+ public static boolean isInternalRequest() {
+ if (getApiType().equals(FilterDecisionEnum.INTERNAL)){
+ return true;
+ } else return false;
}
+
+ public static boolean isExternalRequest() {
+ if (getApiType().equals(FilterDecisionEnum.EXTERNAL)){
+ return true;
+ } else return false;
+ }
}