1 16 17 18 package org.apache.webapp.admin.users; 19 20 21 import java.io.IOException ; 22 import java.net.URLDecoder ; 23 import java.util.ArrayList ; 24 import java.util.Iterator ; 25 import java.util.Locale ; 26 import javax.servlet.ServletException ; 27 import javax.servlet.http.HttpServletRequest ; 28 import javax.servlet.http.HttpServletResponse ; 29 import javax.servlet.http.HttpSession ; 30 import org.apache.struts.action.Action; 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 import org.apache.webapp.admin.TomcatTreeBuilder; 49 50 58 59 public final class SaveRoleAction extends Action { 60 61 62 64 65 68 private MBeanServer mserver = null; 69 70 71 73 74 89 public ActionForward execute(ActionMapping mapping, 90 ActionForm form, 91 HttpServletRequest request, 92 HttpServletResponse response) 93 throws IOException , ServletException { 94 95 if (mserver == null) { 97 mserver = ((ApplicationServlet) getServlet()).getServer(); 98 } 99 MessageResources resources = getResources(request); 100 HttpSession session = request.getSession(); 101 Locale locale = getLocale(request); 102 103 if (isCancelled(request)) { 105 return (mapping.findForward("List Roles Setup")); 106 } 107 108 if (!isTokenValid(request)) { 110 response.sendError 111 (HttpServletResponse.SC_BAD_REQUEST, 112 resources.getMessage(locale, "users.error.token")); 113 return (null); 114 } 115 116 RoleForm roleForm = (RoleForm) form; 118 String databaseName = 119 URLDecoder.decode(roleForm.getDatabaseName(),TomcatTreeBuilder.URL_ENCODING); 120 String objectName = roleForm.getObjectName(); 121 122 if (objectName == null) { 124 125 String signature[] = new String [2]; 126 signature[0] = "java.lang.String"; 127 signature[1] = "java.lang.String"; 128 129 Object params[] = new Object [2]; 130 params[0] = roleForm.getRolename(); 131 params[1] = roleForm.getDescription(); 132 133 ObjectName oname = null; 134 135 try { 136 137 oname = new ObjectName (databaseName); 139 140 mserver.invoke(oname, "createRole", 142 params, signature); 143 144 } catch (Exception e) { 145 146 getServlet().log 147 (resources.getMessage(locale, "users.error.invoke", 148 "createRole"), e); 149 response.sendError 150 (HttpServletResponse.SC_INTERNAL_SERVER_ERROR, 151 resources.getMessage(locale, "users.error.invoke", 152 "createRole")); 153 return (null); 154 } 155 156 } 157 158 else { 160 161 ObjectName oname = null; 162 String attribute = null; 163 164 try { 165 166 oname = new ObjectName (objectName); 168 169 attribute = "description"; 171 mserver.setAttribute 172 (oname, 173 new Attribute (attribute, roleForm.getDescription())); 174 175 } catch (Exception e) { 176 177 getServlet().log 178 (resources.getMessage(locale, "users.error.set.attribute", 179 attribute), e); 180 response.sendError 181 (HttpServletResponse.SC_INTERNAL_SERVER_ERROR, 182 resources.getMessage(locale, "users.error.set.attribute", 183 attribute)); 184 return (null); 185 186 } 187 188 } 189 190 try { 192 193 ObjectName dname = new ObjectName (databaseName); 194 mserver.invoke(dname, "save", 195 new Object [0], new String [0]); 196 197 } catch (Exception e) { 198 199 getServlet().log 200 (resources.getMessage(locale, "users.error.invoke", 201 "save"), e); 202 response.sendError 203 (HttpServletResponse.SC_INTERNAL_SERVER_ERROR, 204 resources.getMessage(locale, "users.error.invoke", 205 "save")); 206 return (null); 207 208 } 209 210 return (mapping.findForward("Roles List Setup")); 212 213 } 214 215 216 } 217 | Popular Tags |