@HandlerInput(name="classnameOption", type=String.class),
@HandlerInput(name="attrMap", type=Map.class),
@HandlerInput(name="newProps", type=Map.class)
})
public static void saveRealm(HandlerContext handlerCtx) {
AuthRealmConfig realm = getAuthRealmConfig(handlerCtx, false);
if (realm == null)
return;
String option = (String) handlerCtx.getInputValue("classnameOption");
Map newProps = (Map)handlerCtx.getInputValue("newProps");
Map<String,String> attrMap = (Map)handlerCtx.getInputValue("attrMap");
try{
if(option.equals("predefine")){
String classname = attrMap.get("classname");
String oldClassname = realm.getClassname();
if (! classname.equals(oldClassname))
realm.setClassname(classname);
// we do want to remove all the special props previously
AMXUtil.updateProperties(realm, newProps, skipRealmPropsList);
if(classname.indexOf("FileRealm")!= -1){
AMXUtil.changeProperty(realm, "file", attrMap.get("file"));
AMXUtil.changeProperty(realm, "jaas-context", attrMap.get("fileJaax"));
AMXUtil.changeProperty(realm, "assign-groups", attrMap.get("fileAsGroups"));
}else
if(classname.indexOf("LDAPRealm")!= -1){
AMXUtil.changeProperty(realm, "jaas-context", attrMap.get("ldapJaax"));
AMXUtil.changeProperty(realm, "assign-groups", attrMap.get("ldapAsGroups"));
AMXUtil.changeProperty(realm, "base-dn", attrMap.get("baseDn"));
AMXUtil.changeProperty(realm, "directory", attrMap.get("directory"));
}else
if(classname.indexOf("SolarisRealm")!= -1){
AMXUtil.changeProperty(realm, "jaas-context", attrMap.get("solarisJaax"));
AMXUtil.changeProperty(realm, "assign-groups", attrMap.get("solarisAsGroups"));
}else
if(classname.indexOf("JDBCRealm")!= -1){
AMXUtil.changeProperty(realm, "jaas-context", attrMap.get("jdbcJaax"));
AMXUtil.changeProperty(realm, "assign-groups", attrMap.get("jdbcAsGroups"));
AMXUtil.changeProperty(realm, "datasource-jndi", attrMap.get("datasourceJndi"));
AMXUtil.changeProperty(realm, "user-table", attrMap.get("userTable"));
AMXUtil.changeProperty(realm, "user-name-column", attrMap.get("userNameColumn"));
AMXUtil.changeProperty(realm, "password-column", attrMap.get("passwordColumn"));
AMXUtil.changeProperty(realm, "group-table", attrMap.get("groupTable"));
AMXUtil.changeProperty(realm, "group-name-column", attrMap.get("groupNameColumn"));
AMXUtil.changeProperty(realm, "db-user", attrMap.get("dbUser"));
AMXUtil.changeProperty(realm, "db-password", attrMap.get("dbPassword"));
AMXUtil.changeProperty(realm, "digest-algorithm", attrMap.get("digestAlgorithm"));
AMXUtil.changeProperty(realm, "encoding", attrMap.get("encoding"));
AMXUtil.changeProperty(realm, "charset", attrMap.get("charset"));
}else
if(classname.indexOf("CertificateRealm")!= -1){
AMXUtil.changeProperty(realm, "assign-groups", attrMap.get("certAsGroups"));
}
} else {
//We need to process all the properties as user define.
AMXUtil.updateProperties(realm, newProps, null);
realm.setClassname(attrMap.get("classnameInput"));
}
}catch(Exception ex){
GuiUtil.handleException(handlerCtx, ex);
}
}