@Test public void testSetupLdapWithoutLdap() throws ApiException, ClouderaManagerClientInitException { underTest.setupLdap(stack, cluster, httpClientConfig, null, null); verify(clouderaManagerResourceApi, never()).updateConfig(anyString(), any()); verify(authRolesResourceApi, never()).readAuthRolesMetadata(anyString()); verify(externalUserMappingsResourceApi, never()).createExternalUserMappings(any(ApiExternalUserMappingList.class)); }
public void setupLdap(Stack stack, Cluster cluster, HttpClientConfig clientConfig, LdapView ldapView, VirtualGroupRequest virtualGroupRequest) throws ApiException, ClouderaManagerClientInitException { if (ldapView != null) { String user = cluster.getCloudbreakAmbariUser(); String password = cluster.getCloudbreakAmbariPassword(); ApiClient client = clouderaManagerApiClientProvider.getClient(stack.getGatewayPort(), user, password, clientConfig); LOGGER.debug("Setup LDAP on ClouderaManager API for stack: {}", stack.getId()); ExternalUserMappingsResourceApi externalUserMappingsResourceApi = clouderaManagerApiFactory.getExternalUserMappingsResourceApi(client); AuthRolesResourceApi authRolesResourceApi = clouderaManagerApiFactory.getAuthRolesResourceApi(client); ApiAuthRoleMetadataList roleMetadataList = authRolesResourceApi.readAuthRolesMetadata(null); if (roleMetadataList.getItems() != null) { Optional<ApiAuthRoleMetadata> dashboardUserRoleOpt = findRole(roleMetadataList, dashboardUserRole); Optional<ApiAuthRoleMetadata> limitedAdminRoleOpt = findRole(roleMetadataList, limitedAdminRole); Optional<ApiAuthRoleMetadata> role = limitedAdminRoleOpt.isPresent() ? limitedAdminRoleOpt : findRole(roleMetadataList, adminRole); if (role.isPresent()) { String virtualGroup = virtualGroupService.getVirtualGroup(virtualGroupRequest, UmsRight.CLOUDER_MANAGER_ADMIN.getRight()); addGroupMapping(externalUserMappingsResourceApi, role.get(), dashboardUserRoleOpt, virtualGroup); } else { LOGGER.info("Cannot setup admin group mapping. Admin roles ({}, {}) are not found", adminRole, limitedAdminRole); } Optional<ApiAuthRoleMetadata> userMetadata = roleMetadataList.getItems().stream().filter(toRole(userRole)).findFirst(); if (userMetadata.isPresent() && StringUtils.isNotBlank(ldapView.getUserGroup())) { addGroupMapping(externalUserMappingsResourceApi, userMetadata.get(), dashboardUserRoleOpt, ldapView.getUserGroup()); } else { LOGGER.info("Cannot setup user group mapping. User metadata present: [{}] User group: [{}]", userMetadata.isPresent(), ldapView.getUserGroup()); } } } }
ClouderaManagerLdapService { public void setupLdap(Stack stack, Cluster cluster, HttpClientConfig clientConfig, LdapView ldapView, VirtualGroupRequest virtualGroupRequest) throws ApiException, ClouderaManagerClientInitException { if (ldapView != null) { String user = cluster.getCloudbreakAmbariUser(); String password = cluster.getCloudbreakAmbariPassword(); ApiClient client = clouderaManagerApiClientProvider.getClient(stack.getGatewayPort(), user, password, clientConfig); LOGGER.debug("Setup LDAP on ClouderaManager API for stack: {}", stack.getId()); ExternalUserMappingsResourceApi externalUserMappingsResourceApi = clouderaManagerApiFactory.getExternalUserMappingsResourceApi(client); AuthRolesResourceApi authRolesResourceApi = clouderaManagerApiFactory.getAuthRolesResourceApi(client); ApiAuthRoleMetadataList roleMetadataList = authRolesResourceApi.readAuthRolesMetadata(null); if (roleMetadataList.getItems() != null) { Optional<ApiAuthRoleMetadata> dashboardUserRoleOpt = findRole(roleMetadataList, dashboardUserRole); Optional<ApiAuthRoleMetadata> limitedAdminRoleOpt = findRole(roleMetadataList, limitedAdminRole); Optional<ApiAuthRoleMetadata> role = limitedAdminRoleOpt.isPresent() ? limitedAdminRoleOpt : findRole(roleMetadataList, adminRole); if (role.isPresent()) { String virtualGroup = virtualGroupService.getVirtualGroup(virtualGroupRequest, UmsRight.CLOUDER_MANAGER_ADMIN.getRight()); addGroupMapping(externalUserMappingsResourceApi, role.get(), dashboardUserRoleOpt, virtualGroup); } else { LOGGER.info("Cannot setup admin group mapping. Admin roles ({}, {}) are not found", adminRole, limitedAdminRole); } Optional<ApiAuthRoleMetadata> userMetadata = roleMetadataList.getItems().stream().filter(toRole(userRole)).findFirst(); if (userMetadata.isPresent() && StringUtils.isNotBlank(ldapView.getUserGroup())) { addGroupMapping(externalUserMappingsResourceApi, userMetadata.get(), dashboardUserRoleOpt, ldapView.getUserGroup()); } else { LOGGER.info("Cannot setup user group mapping. User metadata present: [{}] User group: [{}]", userMetadata.isPresent(), ldapView.getUserGroup()); } } } } }
ClouderaManagerLdapService { public void setupLdap(Stack stack, Cluster cluster, HttpClientConfig clientConfig, LdapView ldapView, VirtualGroupRequest virtualGroupRequest) throws ApiException, ClouderaManagerClientInitException { if (ldapView != null) { String user = cluster.getCloudbreakAmbariUser(); String password = cluster.getCloudbreakAmbariPassword(); ApiClient client = clouderaManagerApiClientProvider.getClient(stack.getGatewayPort(), user, password, clientConfig); LOGGER.debug("Setup LDAP on ClouderaManager API for stack: {}", stack.getId()); ExternalUserMappingsResourceApi externalUserMappingsResourceApi = clouderaManagerApiFactory.getExternalUserMappingsResourceApi(client); AuthRolesResourceApi authRolesResourceApi = clouderaManagerApiFactory.getAuthRolesResourceApi(client); ApiAuthRoleMetadataList roleMetadataList = authRolesResourceApi.readAuthRolesMetadata(null); if (roleMetadataList.getItems() != null) { Optional<ApiAuthRoleMetadata> dashboardUserRoleOpt = findRole(roleMetadataList, dashboardUserRole); Optional<ApiAuthRoleMetadata> limitedAdminRoleOpt = findRole(roleMetadataList, limitedAdminRole); Optional<ApiAuthRoleMetadata> role = limitedAdminRoleOpt.isPresent() ? limitedAdminRoleOpt : findRole(roleMetadataList, adminRole); if (role.isPresent()) { String virtualGroup = virtualGroupService.getVirtualGroup(virtualGroupRequest, UmsRight.CLOUDER_MANAGER_ADMIN.getRight()); addGroupMapping(externalUserMappingsResourceApi, role.get(), dashboardUserRoleOpt, virtualGroup); } else { LOGGER.info("Cannot setup admin group mapping. Admin roles ({}, {}) are not found", adminRole, limitedAdminRole); } Optional<ApiAuthRoleMetadata> userMetadata = roleMetadataList.getItems().stream().filter(toRole(userRole)).findFirst(); if (userMetadata.isPresent() && StringUtils.isNotBlank(ldapView.getUserGroup())) { addGroupMapping(externalUserMappingsResourceApi, userMetadata.get(), dashboardUserRoleOpt, ldapView.getUserGroup()); } else { LOGGER.info("Cannot setup user group mapping. User metadata present: [{}] User group: [{}]", userMetadata.isPresent(), ldapView.getUserGroup()); } } } }  }
ClouderaManagerLdapService { public void setupLdap(Stack stack, Cluster cluster, HttpClientConfig clientConfig, LdapView ldapView, VirtualGroupRequest virtualGroupRequest) throws ApiException, ClouderaManagerClientInitException { if (ldapView != null) { String user = cluster.getCloudbreakAmbariUser(); String password = cluster.getCloudbreakAmbariPassword(); ApiClient client = clouderaManagerApiClientProvider.getClient(stack.getGatewayPort(), user, password, clientConfig); LOGGER.debug("Setup LDAP on ClouderaManager API for stack: {}", stack.getId()); ExternalUserMappingsResourceApi externalUserMappingsResourceApi = clouderaManagerApiFactory.getExternalUserMappingsResourceApi(client); AuthRolesResourceApi authRolesResourceApi = clouderaManagerApiFactory.getAuthRolesResourceApi(client); ApiAuthRoleMetadataList roleMetadataList = authRolesResourceApi.readAuthRolesMetadata(null); if (roleMetadataList.getItems() != null) { Optional<ApiAuthRoleMetadata> dashboardUserRoleOpt = findRole(roleMetadataList, dashboardUserRole); Optional<ApiAuthRoleMetadata> limitedAdminRoleOpt = findRole(roleMetadataList, limitedAdminRole); Optional<ApiAuthRoleMetadata> role = limitedAdminRoleOpt.isPresent() ? limitedAdminRoleOpt : findRole(roleMetadataList, adminRole); if (role.isPresent()) { String virtualGroup = virtualGroupService.getVirtualGroup(virtualGroupRequest, UmsRight.CLOUDER_MANAGER_ADMIN.getRight()); addGroupMapping(externalUserMappingsResourceApi, role.get(), dashboardUserRoleOpt, virtualGroup); } else { LOGGER.info("Cannot setup admin group mapping. Admin roles ({}, {}) are not found", adminRole, limitedAdminRole); } Optional<ApiAuthRoleMetadata> userMetadata = roleMetadataList.getItems().stream().filter(toRole(userRole)).findFirst(); if (userMetadata.isPresent() && StringUtils.isNotBlank(ldapView.getUserGroup())) { addGroupMapping(externalUserMappingsResourceApi, userMetadata.get(), dashboardUserRoleOpt, ldapView.getUserGroup()); } else { LOGGER.info("Cannot setup user group mapping. User metadata present: [{}] User group: [{}]", userMetadata.isPresent(), ldapView.getUserGroup()); } } } }  void setupLdap(Stack stack, Cluster cluster, HttpClientConfig clientConfig, LdapView ldapView, VirtualGroupRequest virtualGroupRequest); }
ClouderaManagerLdapService { public void setupLdap(Stack stack, Cluster cluster, HttpClientConfig clientConfig, LdapView ldapView, VirtualGroupRequest virtualGroupRequest) throws ApiException, ClouderaManagerClientInitException { if (ldapView != null) { String user = cluster.getCloudbreakAmbariUser(); String password = cluster.getCloudbreakAmbariPassword(); ApiClient client = clouderaManagerApiClientProvider.getClient(stack.getGatewayPort(), user, password, clientConfig); LOGGER.debug("Setup LDAP on ClouderaManager API for stack: {}", stack.getId()); ExternalUserMappingsResourceApi externalUserMappingsResourceApi = clouderaManagerApiFactory.getExternalUserMappingsResourceApi(client); AuthRolesResourceApi authRolesResourceApi = clouderaManagerApiFactory.getAuthRolesResourceApi(client); ApiAuthRoleMetadataList roleMetadataList = authRolesResourceApi.readAuthRolesMetadata(null); if (roleMetadataList.getItems() != null) { Optional<ApiAuthRoleMetadata> dashboardUserRoleOpt = findRole(roleMetadataList, dashboardUserRole); Optional<ApiAuthRoleMetadata> limitedAdminRoleOpt = findRole(roleMetadataList, limitedAdminRole); Optional<ApiAuthRoleMetadata> role = limitedAdminRoleOpt.isPresent() ? limitedAdminRoleOpt : findRole(roleMetadataList, adminRole); if (role.isPresent()) { String virtualGroup = virtualGroupService.getVirtualGroup(virtualGroupRequest, UmsRight.CLOUDER_MANAGER_ADMIN.getRight()); addGroupMapping(externalUserMappingsResourceApi, role.get(), dashboardUserRoleOpt, virtualGroup); } else { LOGGER.info("Cannot setup admin group mapping. Admin roles ({}, {}) are not found", adminRole, limitedAdminRole); } Optional<ApiAuthRoleMetadata> userMetadata = roleMetadataList.getItems().stream().filter(toRole(userRole)).findFirst(); if (userMetadata.isPresent() && StringUtils.isNotBlank(ldapView.getUserGroup())) { addGroupMapping(externalUserMappingsResourceApi, userMetadata.get(), dashboardUserRoleOpt, ldapView.getUserGroup()); } else { LOGGER.info("Cannot setup user group mapping. User metadata present: [{}] User group: [{}]", userMetadata.isPresent(), ldapView.getUserGroup()); } } } }  void setupLdap(Stack stack, Cluster cluster, HttpClientConfig clientConfig, LdapView ldapView, VirtualGroupRequest virtualGroupRequest);  }