00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 package org.objectweb.jonas.webapp.jonasadmin.security;
00027
00028 import java.io.IOException;
00029
00030 import javax.management.ObjectName;
00031 import javax.servlet.ServletException;
00032 import javax.servlet.http.HttpServletRequest;
00033 import javax.servlet.http.HttpServletResponse;
00034
00035 import org.apache.struts.action.ActionForm;
00036 import org.apache.struts.action.ActionForward;
00037 import org.apache.struts.action.ActionMapping;
00038 import org.objectweb.jonas.jmx.JonasManagementRepr;
00039 import org.objectweb.jonas.jmx.JonasObjectName;
00040 import org.objectweb.jonas.webapp.jonasadmin.WhereAreYou;
00041
00046 public class ApplyLdapRealmAction extends BaseMemoryRealmAction {
00047
00048
00049
00050 public ActionForward executeAction(ActionMapping p_Mapping, ActionForm p_Form
00051 , HttpServletRequest p_Request, HttpServletResponse p_Response)
00052 throws IOException, ServletException {
00053
00054
00055 LdapRealmForm oForm = (LdapRealmForm) p_Form;
00056
00057
00058 try {
00059
00060 if (oForm.getAction().equals("create") == true) {
00061 oForm.setResource(oForm.getName());
00062
00063 ObjectName oObjectName = JonasObjectName.securityService();
00064 String[] asParam = {
00065 oForm.getName(), oForm.getInitialContextFactory(), oForm.getProviderUrl()
00066 , oForm.getSecurityAuthentication(), oForm.getSecurityPrincipal()
00067 , oForm.getSecurityCredentials(), oForm.getSecurityProtocol()
00068 , oForm.getLanguage(), oForm.getReferral(), oForm.getStateFactories()
00069 , oForm.getAuthenticationMode(), oForm.getUserPasswordAttribute()
00070 , oForm.getUserRolesAttribute(), oForm.getRoleNameAttribute(), oForm.getBaseDn()
00071 , oForm.getUserDn(), oForm.getUserSearchFilter(), oForm.getRoleDn()
00072 , oForm.getRoleSearchFilter(), oForm.getAlgorithm()};
00073 String[] asSignature = {
00074 "java.lang.String", "java.lang.String", "java.lang.String", "java.lang.String"
00075 , "java.lang.String", "java.lang.String", "java.lang.String"
00076 , "java.lang.String", "java.lang.String", "java.lang.String"
00077 , "java.lang.String", "java.lang.String", "java.lang.String"
00078 , "java.lang.String", "java.lang.String", "java.lang.String"
00079 , "java.lang.String", "java.lang.String", "java.lang.String"
00080 , "java.lang.String"};
00081 JonasManagementRepr.invoke(oObjectName, "addJResourceLDAP", asParam, asSignature);
00082
00083 refreshTree();
00084
00085 m_WhereAreYou.selectNameNode(getTreeBranchName(DEPTH_SERVER)
00086 + WhereAreYou.NODE_SEPARATOR + "security" + WhereAreYou.NODE_SEPARATOR
00087 + "factory.ldap" + WhereAreYou.NODE_SEPARATOR + oForm.getName(), true);
00088
00089 oForm.setAction("apply");
00090 }
00091 else {
00092
00093 ObjectName oObjectName = JonasObjectName.securityLdapFactory(oForm.getResource());
00094 setStringAttribute(oObjectName, "AuthenticationMode", oForm.getAuthenticationMode());
00095 setStringAttribute(oObjectName, "BaseDN", oForm.getBaseDn());
00096 setStringAttribute(oObjectName, "InitialContextFactory"
00097 , oForm.getInitialContextFactory());
00098 setStringAttribute(oObjectName, "Language", oForm.getLanguage());
00099 setStringAttribute(oObjectName, "ProviderUrl", oForm.getProviderUrl());
00100 setStringAttribute(oObjectName, "Referral", oForm.getReferral());
00101 setStringAttribute(oObjectName, "RoleDN", oForm.getRoleDn());
00102 setStringAttribute(oObjectName, "RoleNameAttribute", oForm.getRoleNameAttribute());
00103 setStringAttribute(oObjectName, "RoleSearchFilter", oForm.getRoleSearchFilter());
00104 setStringAttribute(oObjectName, "SecurityAuthentication"
00105 , oForm.getSecurityAuthentication());
00106 setStringAttribute(oObjectName, "SecurityCredentials", oForm.getSecurityCredentials());
00107 setStringAttribute(oObjectName, "SecurityPrincipal", oForm.getSecurityPrincipal());
00108 setStringAttribute(oObjectName, "SecurityProtocol", oForm.getSecurityProtocol());
00109 setStringAttribute(oObjectName, "StateFactories", oForm.getStateFactories());
00110 setStringAttribute(oObjectName, "UserDN", oForm.getUserDn());
00111 setStringAttribute(oObjectName, "UserPasswordAttribute"
00112 , oForm.getUserPasswordAttribute());
00113 setStringAttribute(oObjectName, "UserRolesAttribute", oForm.getUserRolesAttribute());
00114 setStringAttribute(oObjectName, "UserSearchFilter", oForm.getUserSearchFilter());
00115 setStringAttribute(oObjectName, "Algorithm", oForm.getAlgorithm());
00116 }
00117
00118 if (oForm.isSave()) {
00119 ObjectName onRealm = JonasObjectName.securityLdapFactory(oForm.getResource());
00120 JonasManagementRepr.invoke(onRealm, "saveConfig", null, null);
00121 }
00122 }
00123 catch (Throwable t) {
00124 addGlobalError(t);
00125 saveErrors(p_Request, m_Errors);
00126 return (p_Mapping.findForward("Global Error"));
00127 }
00128
00129 return (p_Mapping.findForward("Ldap Realm"));
00130 }
00131
00132
00133
00134 }