1 16 17 package org.apache.webapp.admin.valve; 18 19 import java.util.Locale ; 20 import java.io.IOException ; 21 import javax.management.Attribute ; 22 import javax.management.MBeanServer ; 23 import javax.management.MBeanServerFactory ; 24 import javax.management.QueryExp ; 25 import javax.management.Query ; 26 import javax.management.ObjectInstance ; 27 import javax.management.ObjectName ; 28 import javax.management.JMException ; 29 import javax.servlet.ServletException ; 30 import javax.servlet.http.HttpServletRequest ; 31 import javax.servlet.http.HttpServletResponse ; 32 import javax.servlet.http.HttpSession ; 33 import org.apache.struts.action.Action; 34 import org.apache.struts.action.ActionError; 35 import org.apache.struts.action.ActionErrors; 36 import org.apache.struts.action.ActionForm; 37 import org.apache.struts.action.ActionForward; 38 import org.apache.struts.action.ActionMapping; 39 import org.apache.struts.util.MessageResources; 40 import org.apache.webapp.admin.ApplicationServlet; 41 42 49 50 public final class SaveSingleSignOnValveAction extends Action { 51 52 53 55 58 private MBeanServer mBServer = null; 59 60 62 63 78 public ActionForward execute(ActionMapping mapping, 79 ActionForm form, 80 HttpServletRequest request, 81 HttpServletResponse response) 82 throws IOException , ServletException { 83 84 HttpSession session = request.getSession(); 86 Locale locale = getLocale(request); 87 MessageResources resources = getResources(request); 88 89 try { 91 mBServer = ((ApplicationServlet) getServlet()).getServer(); 92 } catch (Throwable t) { 93 throw new ServletException 94 ("Cannot acquire MBeanServer reference", t); 95 } 96 97 SingleSignOnValveForm vform = (SingleSignOnValveForm) form; 99 String adminAction = vform.getAdminAction(); 100 String vObjectName = vform.getObjectName(); 101 String parent = vform.getParentObjectName(); 102 String valveType = vform.getValveType(); 103 104 if ("Create".equals(adminAction)) { 106 107 try { 108 ObjectName pname = new ObjectName (parent); 110 ObjectName oname = 111 new ObjectName (pname.getDomain() + 112 ":type=Valve,name=SingleSignOn"); 113 114 if (mBServer.isRegistered(oname)) { 115 ActionErrors errors = new ActionErrors(); 116 errors.add("singleSignOnValve", 117 new ActionError("error.singleSignOn.exists")); 118 saveErrors(request, errors); 119 return (new ActionForward(mapping.getInput())); 120 } 121 } catch (Exception e) { 122 getServlet().log 123 (resources.getMessage(locale, "users.error.invoke", 124 adminAction), e); 125 response.sendError 126 (HttpServletResponse.SC_INTERNAL_SERVER_ERROR, 127 resources.getMessage(locale, "users.error.invoke", 128 adminAction)); 129 return (null); 130 131 } 132 133 vObjectName = ValveUtil.createValve(parent, valveType, 134 response, request, mapping, 135 (ApplicationServlet) getServlet()); 136 137 } 138 139 String attribute = null; 141 142 session.removeAttribute(mapping.getAttribute()); 144 return (mapping.findForward("Save Successful")); 145 } 146 } 147 | Popular Tags |