@Handler( id = "saveSecurityManagerValue", input = { @HandlerInput(name = "configName", type = String.class), @HandlerInput(name = "value", type = String.class, required = true) }) public static void saveSecurityManagerValue(HandlerContext handlerCtx) { try { String configName = (String) handlerCtx.getInputValue("configName"); if (GuiUtil.isEmpty(configName)) configName = "server-config"; String endpoint = GuiUtil.getSessionValue("REST_URL") + "/configs/config/" + configName + "/java-config/jvm-options.json"; ArrayList<String> list; Map result = (HashMap) RestUtil.restRequest(endpoint, null, "GET", null, false).get("data"); list = (ArrayList<String>) ((Map<String, Object>) result.get("extraProperties")).get("leafList"); if (list == null) list = new ArrayList<String>(); Boolean status = isSecurityManagerEnabled(list); String value = (String) handlerCtx.getInputValue("value"); Boolean userValue = Boolean.valueOf(value); if (status.equals(userValue)) { // no need to change return; } ArrayList<String> newOptions = new ArrayList(); Object[] origOptions = list.toArray(); if (userValue) { for (int i = 0; i < origOptions.length; i++) { newOptions.add((String) origOptions[i]); } newOptions.add(JVM_OPTION_SECURITY_MANAGER); } else { for (int i = 0; i < origOptions.length; i++) { String str = (String) origOptions[i]; if (!(str.trim().equals(JVM_OPTION_SECURITY_MANAGER) || str.trim().startsWith(JVM_OPTION_SECURITY_MANAGER_WITH_EQUAL))) { newOptions.add((String) origOptions[i]); } } } Map<String, Object> payload = new HashMap<String, Object>(); payload.put("target", configName); for (String option : newOptions) { ArrayList kv = InstanceHandler.getKeyValuePair(option); payload.put((String) kv.get(0), kv.get(1)); } RestUtil.restRequest(endpoint, payload, "POST", handlerCtx, false); } catch (Exception ex) { GuiUtil.handleException(handlerCtx, ex); } }
@Handler( id = "getSecurityManagerValue", input = { @HandlerInput(name = "endpoint", type = String.class), @HandlerInput(name = "attrs", type = Map.class, required = false) }, output = {@HandlerOutput(name = "value", type = String.class)}) public static void getSecurityManagerValue(HandlerContext handlerCtx) { ArrayList<String> list = InstanceHandler.getJvmOptions(handlerCtx); handlerCtx.setOutputValue("value", isSecurityManagerEnabled(list).toString()); }