diff options
Diffstat (limited to 'vid-app-common/src/main/java')
-rw-r--r-- | vid-app-common/src/main/java/org/onap/vid/roles/RoleProvider.java | 27 | ||||
-rw-r--r-- | vid-app-common/src/main/java/org/onap/vid/roles/RoleValidator.java | 21 |
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; + } } |