/** * This handler removes users for specified realm. * * @param handlerCtx The HandlerContext. */ @Handler( id = "removeUser", input = { @HandlerInput(name = "Realm", type = String.class, required = true), @HandlerInput(name = "configName", type = String.class, required = true), @HandlerInput(name = "selectedRows", type = List.class, required = true) }, output = {@HandlerOutput(name = "result", type = java.util.List.class)}) public static void removeUser(HandlerContext handlerCtx) { String error = null; String realmName = (String) handlerCtx.getInputValue("Realm"); String configName = (String) handlerCtx.getInputValue("configName"); try { List obj = (List) handlerCtx.getInputValue("selectedRows"); List<Map> selectedRows = (List) obj; for (Map oneRow : selectedRows) { String user = (String) oneRow.get("name"); String endpoint = GuiUtil.getSessionValue("REST_URL") + "/configs/config/" + configName + "/admin-service/jmx-connector/system.json"; Map<String, Object> responseMap = RestUtil.restRequest(endpoint, null, "get", handlerCtx, false); Map<String, Object> valueMap = (Map<String, Object>) responseMap.get("data"); valueMap = (Map<String, Object>) ((Map<String, Object>) valueMap.get("extraProperties")).get("entity"); String authRealm = (String) valueMap.get("authRealmName"); if (realmName.equals(authRealm) && user.equals(GuiUtil.getSessionValue("userName"))) { error = GuiUtil.getMessage(COMMON_BUNDLE, "msg.error.cannotDeleteCurrent"); continue; } else { HashMap attrs = new HashMap<String, Object>(); endpoint = GuiUtil.getSessionValue("REST_URL") + "/configs/config/" + configName + "/security-service/auth-realm/" + realmName + "/delete-user?target=" + configName; attrs.put("name", user); RestResponse response = RestUtil.delete(endpoint, attrs); if (!response.isSuccess()) { GuiUtil.getLogger() .severe("Remove user failed. parent=" + endpoint + "; attrs =" + attrs); error = GuiUtil.getMessage("msg.error.checkLog"); } } } if (error != null) { GuiUtil.prepareAlert("error", error, null); } } catch (Exception ex) { GuiUtil.handleException(handlerCtx, ex); } }