summaryrefslogtreecommitdiffstats
path: root/vid-app-common/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'vid-app-common/src/main')
-rw-r--r--vid-app-common/src/main/java/org/onap/vid/roles/RoleProvider.java27
-rw-r--r--vid-app-common/src/main/java/org/onap/vid/roles/RoleValidator.java21
2 files changed, 34 insertions, 14 deletions
diff --git a/vid-app-common/src/main/java/org/onap/vid/roles/RoleProvider.java b/vid-app-common/src/main/java/org/onap/vid/roles/RoleProvider.java
index d4256f893..e792139bf 100644
--- a/vid-app-common/src/main/java/org/onap/vid/roles/RoleProvider.java
+++ b/vid-app-common/src/main/java/org/onap/vid/roles/RoleProvider.java
@@ -36,6 +36,7 @@ import org.springframework.stereotype.Component;
import javax.servlet.http.HttpServletRequest;
import java.util.*;
+import java.util.function.Function;
import java.util.stream.Collectors;
@@ -50,16 +51,32 @@ public class RoleProvider {
static final String READ_PERMISSION_STRING = "read";
private final ObjectMapper om = new ObjectMapper();
- @Autowired
private AaiService aaiService;
+ private Function<HttpServletRequest, Integer> getUserIdFunction;
+ private Function<HttpServletRequest, Map> getRolesFunction;
+
+ @Autowired
+ public RoleProvider(AaiService aaiService) {
+ this.aaiService=aaiService;
+ getUserIdFunction = UserUtils::getUserId;
+ getRolesFunction = UserUtils::getRoles;
+ }
+
+ RoleProvider(AaiService aaiService, Function<HttpServletRequest, Integer> getUserIdFunction, Function<HttpServletRequest, Map> getRolesFunction) {
+ this.aaiService = aaiService;
+ this.getRolesFunction = getRolesFunction;
+ this.getUserIdFunction = getUserIdFunction;
+ }
+
public List<Role> getUserRoles(HttpServletRequest request) {
- String logPrefix = "Role Provider (" + UserUtils.getUserId(request) + ") ==>";
+ int userId= getUserIdFunction.apply(request);
+ String logPrefix = "Role Provider (" + userId + ") ==>";
- LOG.debug(EELFLoggerDelegate.debugLogger, logPrefix + "Entering to get user role for user " + UserUtils.getUserId(request));
+ LOG.debug(EELFLoggerDelegate.debugLogger, logPrefix + "Entering to get user role for user " + userId);
List<Role> roleList = new ArrayList<>();
- Map roles = UserUtils.getRoles(request);
+ Map roles = getRolesFunction.apply(request);
for (Object role : roles.keySet()) {
org.onap.portalsdk.core.domain.Role sdkRol = (org.onap.portalsdk.core.domain.Role) roles.get(role);
@@ -72,7 +89,7 @@ public class RoleProvider {
}
String[] roleParts = splitRole((sdkRol.getName()), logPrefix);
roleList.add(createRoleFromStringArr(roleParts, logPrefix));
- String msg = String.format("%s User %s got permissions %s", logPrefix, UserUtils.getUserId(request), Arrays.toString(roleParts));
+ String msg = String.format("%s User %s got permissions %s", logPrefix, userId, Arrays.toString(roleParts));
LOG.debug(EELFLoggerDelegate.debugLogger, msg);
} catch (Exception e) {
LOG.error(logPrefix + " Failed to parse permission");
diff --git a/vid-app-common/src/main/java/org/onap/vid/roles/RoleValidator.java b/vid-app-common/src/main/java/org/onap/vid/roles/RoleValidator.java
index 7486eba9c..6afac9881 100644
--- a/vid-app-common/src/main/java/org/onap/vid/roles/RoleValidator.java
+++ b/vid-app-common/src/main/java/org/onap/vid/roles/RoleValidator.java
@@ -18,8 +18,8 @@ public class RoleValidator {
}
public boolean isSubscriberPermitted(String subscriberName) {
- if(this.disableRoles) return true;
-
+ if (this.disableRoles) return true;
+
for (Role role : userRoles) {
if (role.getSubscribeName().equals(subscriberName))
return true;
@@ -28,8 +28,8 @@ public class RoleValidator {
}
public boolean isServicePermitted(String subscriberName, String serviceType) {
- if(this.disableRoles) return true;
-
+ if (this.disableRoles) return true;
+
for (Role role : userRoles) {
if (role.getSubscribeName().equals(subscriberName) && role.getServiceType().equals(serviceType))
return true;
@@ -38,8 +38,8 @@ public class RoleValidator {
}
public boolean isMsoRequestValid(RequestDetails mso_request) {
- if(this.disableRoles) return true;
-
+ if (this.disableRoles) return true;
+
try {
String globalSubscriberIdRequested = (String) ((Map) ((Map) mso_request.getAdditionalProperties().get("requestDetails")).get("subscriberInfo")).get("globalSubscriberId");
String serviceType = (String) ((Map) ((Map) mso_request.getAdditionalProperties().get("requestDetails")).get("requestParameters")).get("subscriptionServiceType");
@@ -48,12 +48,11 @@ public class RoleValidator {
//Until we'll get the exact information regarding the tenants and the global customer id, we'll return true on unknown requests to mso
return true;
}
-// return false;
}
public boolean isTenantPermitted(String globalCustomerId, String serviceType, String tenantName) {
- if(this.disableRoles) return true;
-
+ if (this.disableRoles) return true;
+
for (Role role : userRoles) {
if (role.getSubscribeName().equals(globalCustomerId)
&& role.getServiceType().equals(serviceType)
@@ -63,4 +62,8 @@ public class RoleValidator {
}
return false;
}
+
+ void enableRoles() {
+ this.disableRoles = false;
+ }
}