From 475ea8878a1cfddacd9959338af9c3d7a185523e Mon Sep 17 00:00:00 2001 From: zahidblackduck Date: Tue, 18 Mar 2025 00:29:50 +0600 Subject: [PATCH 1/2] sysadmin check add in blackduck connectivity checker to pass to blackduck-common --- .../product/BlackDuckConnectivityChecker.java | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/blackduck/integration/detect/lifecycle/boot/product/BlackDuckConnectivityChecker.java b/src/main/java/com/blackduck/integration/detect/lifecycle/boot/product/BlackDuckConnectivityChecker.java index 6321b4ee4f..12e5d03f69 100644 --- a/src/main/java/com/blackduck/integration/detect/lifecycle/boot/product/BlackDuckConnectivityChecker.java +++ b/src/main/java/com/blackduck/integration/detect/lifecycle/boot/product/BlackDuckConnectivityChecker.java @@ -30,6 +30,7 @@ public class BlackDuckConnectivityChecker { private static final LinkMultipleResponses USERGROUPS = new LinkMultipleResponses<>("usergroups", UserGroupView.class); + private final String SYS_ADMIN_ROLE = "System Administrator"; private final Logger logger = LoggerFactory.getLogger(this.getClass()); public BlackDuckConnectivityResult determineConnectivity(BlackDuckServerConfig blackDuckServerConfig) @@ -51,15 +52,15 @@ public BlackDuckConnectivityResult determineConnectivity(BlackDuckServerConfig b String version = ""; try { - version = blackDuckRegistrationService.getBlackDuckServerData().getVersion(); + UserView userView = userService.findCurrentUser(); + UserGroupService userGroupService = blackDuckServicesFactory.createUserGroupService(); + List roles = userGroupService.getServerRolesForUser(userView); + boolean isAdmin = checkIsAdmin(roles); + version = blackDuckRegistrationService.getBlackDuckServerData(isAdmin).getVersion(); logger.info(String.format("Successfully connected to Black Duck (version %s)!", version)); if (logger.isDebugEnabled()) { - UserView userView = userService.findCurrentUser(); logger.debug("Connected as: " + userView.getUserName()); - - UserGroupService userGroupService = blackDuckServicesFactory.createUserGroupService(); - List roles = userGroupService.getServerRolesForUser(userView); logger.debug("Server Roles: " + roles.stream().map(RoleAssignmentView::getName).distinct().collect(Collectors.joining(", "))); BlackDuckApiClient blackDuckApiClient = blackDuckServicesFactory.getBlackDuckApiClient(); @@ -75,4 +76,8 @@ public BlackDuckConnectivityResult determineConnectivity(BlackDuckServerConfig b } return BlackDuckConnectivityResult.success(blackDuckServicesFactory, blackDuckServerConfig, version); } -} + + private boolean checkIsAdmin(List roles) { + return roles.stream().anyMatch(role -> SYS_ADMIN_ROLE.equals(role.getName())); + } +} \ No newline at end of file From 34ff371c929dc13e7135f17568989dea13931b35 Mon Sep 17 00:00:00 2001 From: zahidblackduck Date: Tue, 18 Mar 2025 15:33:22 +0600 Subject: [PATCH 2/2] unused import cleanup in blackduck connectivity checker --- .../boot/product/BlackDuckConnectivityChecker.java | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/main/java/com/blackduck/integration/detect/lifecycle/boot/product/BlackDuckConnectivityChecker.java b/src/main/java/com/blackduck/integration/detect/lifecycle/boot/product/BlackDuckConnectivityChecker.java index 12e5d03f69..391d788233 100644 --- a/src/main/java/com/blackduck/integration/detect/lifecycle/boot/product/BlackDuckConnectivityChecker.java +++ b/src/main/java/com/blackduck/integration/detect/lifecycle/boot/product/BlackDuckConnectivityChecker.java @@ -16,11 +16,7 @@ import com.blackduck.integration.blackduck.service.dataservice.BlackDuckRegistrationService; import com.blackduck.integration.blackduck.service.dataservice.UserGroupService; import com.blackduck.integration.blackduck.service.dataservice.UserService; -import com.blackduck.integration.configuration.property.Properties; -import com.blackduck.integration.configuration.property.types.enums.EnumProperty; -import com.blackduck.integration.detect.configuration.DetectProperties; import com.blackduck.integration.detect.configuration.DetectUserFriendlyException; -import com.blackduck.integration.detect.configuration.enumeration.BlackduckScanMode; import com.blackduck.integration.detect.configuration.enumeration.ExitCodeType; import com.blackduck.integration.exception.IntegrationException; import com.blackduck.integration.log.SilentIntLogger; @@ -29,8 +25,7 @@ public class BlackDuckConnectivityChecker { private static final LinkMultipleResponses USERGROUPS = new LinkMultipleResponses<>("usergroups", UserGroupView.class); - - private final String SYS_ADMIN_ROLE = "System Administrator"; + private static final String SYS_ADMIN_ROLE = "System Administrator"; private final Logger logger = LoggerFactory.getLogger(this.getClass()); public BlackDuckConnectivityResult determineConnectivity(BlackDuckServerConfig blackDuckServerConfig)