1 16 17 18 package org.apache.webapp.admin.resources; 19 20 import java.io.IOException ; 21 import java.net.URLDecoder ; 22 import java.util.ArrayList ; 23 import java.util.Iterator ; 24 import java.util.Locale ; 25 import javax.servlet.ServletException ; 26 import javax.servlet.http.HttpServletRequest ; 27 import javax.servlet.http.HttpServletResponse ; 28 import javax.servlet.http.HttpSession ; 29 import org.apache.struts.action.Action; 30 import org.apache.struts.action.ActionError; 31 import org.apache.struts.action.ActionErrors; 32 import org.apache.struts.action.ActionForm; 33 import org.apache.struts.action.ActionForward; 34 import org.apache.struts.action.ActionMapping; 35 import javax.management.Attribute ; 36 import javax.management.MBeanServer ; 37 import javax.management.MBeanServerFactory ; 38 import javax.management.QueryExp ; 39 import javax.management.Query ; 40 import javax.management.ObjectInstance ; 41 import javax.management.ObjectName ; 42 import javax.management.JMException ; 43 import javax.management.MBeanAttributeInfo ; 44 import javax.management.MBeanOperationInfo ; 45 import javax.management.MBeanInfo ; 46 import org.apache.struts.util.MessageResources; 47 import org.apache.webapp.admin.ApplicationServlet; 48 49 50 58 59 public final class SaveMailSessionAction extends Action { 60 61 62 64 67 private MBeanServer mserver = null; 68 69 71 72 87 public ActionForward execute(ActionMapping mapping, 88 ActionForm form, 89 HttpServletRequest request, 90 HttpServletResponse response) 91 throws IOException , ServletException { 92 93 if (mserver == null) { 95 mserver = ((ApplicationServlet) getServlet()).getServer(); 96 } 97 MessageResources resources = getResources(request); 98 HttpSession session = request.getSession(); 99 Locale locale = getLocale(request); 100 101 if (isCancelled(request)) { 103 return (mapping.findForward("List MailSessions Setup")); 104 } 105 106 if (!isTokenValid(request)) { 108 response.sendError 109 (HttpServletResponse.SC_BAD_REQUEST, 110 resources.getMessage(locale, "users.error.token")); 111 return (null); 112 } 113 114 MailSessionForm mailSessionForm = (MailSessionForm) form; 116 String objectName = mailSessionForm.getObjectName(); 117 118 if (objectName == null) { 120 121 String signature[] = new String [2]; 122 signature[0] = "java.lang.String"; 123 signature[1] = "java.lang.String"; 124 125 Object params[] = new Object [2]; 126 params[0] = mailSessionForm.getName(); 127 params[1] = ResourceUtils.MAILSESSION_CLASS; 128 129 String resourcetype = mailSessionForm.getResourcetype(); 130 String path = mailSessionForm.getPath(); 131 String host = mailSessionForm.getHost(); 132 String domain = mailSessionForm.getDomain(); 133 134 ObjectName oname = null; 135 136 try { 137 138 if (resourcetype.equals("Global")) { 139 oname = new ObjectName ( domain + ResourceUtils.RESOURCE_TYPE + 140 ResourceUtils.GLOBAL_TYPE + 141 ",class=" + params[1] + 142 ",name=" + params[0]); 143 } else if (resourcetype.equals("Context")) { 144 oname = new ObjectName ( domain + ResourceUtils.RESOURCE_TYPE + 145 ResourceUtils.CONTEXT_TYPE + 146 ",path=" + path + ",host=" + host + 147 ",class=" + params[1] + 148 ",name=" + params[0]); 149 } 150 151 if (mserver.isRegistered(oname)) { 152 ActionErrors errors = new ActionErrors(); 153 errors.add("name", 154 new ActionError("resources.invalid.name")); 155 saveErrors(request, errors); 156 return (new ActionForward(mapping.getInput())); 157 } 158 159 oname = ResourceUtils.getNamingResourceObjectName(domain, 160 resourcetype, path, host); 161 162 objectName = (String ) mserver.invoke(oname, "addResource", 164 params, signature); 165 166 } catch (Exception e) { 167 168 getServlet().log 169 (resources.getMessage(locale, "users.error.invoke", 170 "addResource"), e); 171 response.sendError 172 (HttpServletResponse.SC_INTERNAL_SERVER_ERROR, 173 resources.getMessage(locale, "users.error.invoke", 174 "addResource")); 175 return (null); 176 } 177 178 } 179 180 String attribute = null; 182 try { 183 184 ObjectName oname = new ObjectName (objectName); 185 186 attribute = "mail.smtp.host"; 187 mserver.setAttribute 188 (oname, 189 new Attribute (attribute, mailSessionForm.getMailhost())); 190 191 } catch (Exception e) { 192 193 getServlet().log 194 (resources.getMessage(locale, "users.error.set.attribute", 195 attribute), e); 196 response.sendError 197 (HttpServletResponse.SC_INTERNAL_SERVER_ERROR, 198 resources.getMessage(locale, "users.error.set.attribute", 199 attribute)); 200 return (null); 201 202 } 203 204 return (mapping.findForward("MailSessions List Setup")); 206 207 } 208 209 210 } 211 | Popular Tags |