1 16 17 package org.apache.webapp.admin.valve; 18 19 import java.io.IOException ; 20 import java.net.URLEncoder ; 21 import java.util.Locale ; 22 import java.util.ArrayList ; 23 import javax.servlet.ServletException ; 24 import javax.servlet.http.HttpServletRequest ; 25 import javax.servlet.http.HttpServletResponse ; 26 import javax.servlet.http.HttpSession ; 27 import org.apache.struts.action.Action; 28 import org.apache.struts.action.ActionErrors; 29 import org.apache.struts.action.ActionForm; 30 import org.apache.struts.action.ActionForward; 31 import org.apache.struts.action.ActionMapping; 32 import org.apache.struts.util.MessageResources; 33 import org.apache.webapp.admin.TomcatTreeBuilder; 34 import org.apache.webapp.admin.LabelValueBean; 35 import org.apache.webapp.admin.Lists; 36 37 43 44 public class AddValveAction extends Action { 45 46 private ArrayList types = null; 48 49 51 66 public ActionForward execute(ActionMapping mapping, 67 ActionForm form, 68 HttpServletRequest request, 69 HttpServletResponse response) 70 throws IOException , ServletException { 71 72 HttpSession session = request.getSession(); 74 Locale locale = getLocale(request); 75 MessageResources resources = getResources(request); 76 77 79 String valveTypes[] = new String [5]; 80 valveTypes[0] = "AccessLogValve"; 81 valveTypes[1] = "RemoteAddrValve"; 82 valveTypes[2] = "RemoteHostValve"; 83 valveTypes[3] = "RequestDumperValve"; 84 valveTypes[4] = "SingleSignOn"; 85 86 String parent = request.getParameter("parent"); 87 String type = request.getParameter("type"); 88 if (type == null) 89 type = "AccessLogValve"; 91 types = new ArrayList (); 92 types.add(new LabelValueBean(type, 94 "AddValve.do?parent=" + 95 URLEncoder.encode(parent,TomcatTreeBuilder.URL_ENCODING) 96 + "&type=" + type)); 97 for (int i=0; i< valveTypes.length; i++) { 98 if (!type.equalsIgnoreCase(valveTypes[i])) { 99 types.add(new LabelValueBean(valveTypes[i], 100 "AddValve.do?parent=" + 101 URLEncoder.encode(parent,TomcatTreeBuilder.URL_ENCODING) 102 + "&type=" + valveTypes[i])); 103 } 104 } 105 106 if ("AccessLogValve".equalsIgnoreCase(type)) { 107 createAccessLogger(session, parent); 108 } else if ("RemoteAddrValve".equalsIgnoreCase(type)) { 109 createRemoteAddrValve(session, parent); 110 } else if ("RemoteHostValve".equalsIgnoreCase(type)) { 111 createRemoteHostValve(session, parent); 112 } else if ("RequestDumperValve".equalsIgnoreCase(type)) { 113 createRequestDumperValve(session, parent); 114 } else { 115 createSingleSignOnValve(session, parent); 117 } 118 return (mapping.findForward(type)); 120 121 } 122 123 private void createAccessLogger(HttpSession session, String parent) { 124 125 AccessLogValveForm valveFm = new AccessLogValveForm(); 126 session.setAttribute("accessLogValveForm", valveFm); 127 valveFm.setAdminAction("Create"); 128 valveFm.setObjectName(""); 129 valveFm.setParentObjectName(parent); 130 String valveType = "AccessLogValve"; 131 valveFm.setNodeLabel("Valve (" + valveType + ")"); 132 valveFm.setValveType(valveType); 133 valveFm.setPattern(""); 134 valveFm.setDirectory("logs"); 135 valveFm.setPrefix("access_log."); 136 valveFm.setSuffix(""); 137 valveFm.setResolveHosts("false"); 138 valveFm.setRotatable("true"); 139 valveFm.setBooleanVals(Lists.getBooleanValues()); 140 valveFm.setValveTypeVals(types); 141 } 142 143 private void createRemoteAddrValve(HttpSession session, String parent) { 144 145 RemoteAddrValveForm valveFm = new RemoteAddrValveForm(); 146 session.setAttribute("remoteAddrValveForm", valveFm); 147 valveFm.setAdminAction("Create"); 148 valveFm.setObjectName(""); 149 valveFm.setParentObjectName(parent); 150 String valveType = "RemoteAddrValve"; 151 valveFm.setNodeLabel("Valve (" + valveType + ")"); 152 valveFm.setValveType(valveType); 153 valveFm.setAllow(""); 154 valveFm.setDeny(""); 155 valveFm.setValveTypeVals(types); 156 } 157 158 private void createRemoteHostValve(HttpSession session, String parent) { 159 160 RemoteHostValveForm valveFm = new RemoteHostValveForm(); 161 session.setAttribute("remoteHostValveForm", valveFm); 162 valveFm.setAdminAction("Create"); 163 valveFm.setObjectName(""); 164 valveFm.setParentObjectName(parent); 165 String valveType = "RemoteHostValve"; 166 valveFm.setNodeLabel("Valve (" + valveType + ")"); 167 valveFm.setValveType(valveType); 168 valveFm.setAllow(""); 169 valveFm.setDeny(""); 170 valveFm.setValveTypeVals(types); 171 } 172 173 private void createRequestDumperValve(HttpSession session, String parent) { 174 175 RequestDumperValveForm valveFm = new RequestDumperValveForm(); 176 session.setAttribute("requestDumperValveForm", valveFm); 177 valveFm.setAdminAction("Create"); 178 valveFm.setObjectName(""); 179 valveFm.setParentObjectName(parent); 180 String valveType = "RequestDumperValve"; 181 valveFm.setNodeLabel("Valve (" + valveType + ")"); 182 valveFm.setValveType(valveType); 183 valveFm.setValveTypeVals(types); 184 } 185 186 private void createSingleSignOnValve(HttpSession session, String parent) { 187 188 SingleSignOnValveForm valveFm = new SingleSignOnValveForm(); 189 session.setAttribute("singleSignOnValveForm", valveFm); 190 valveFm.setAdminAction("Create"); 191 valveFm.setObjectName(""); 192 valveFm.setParentObjectName(parent); 193 String valveType = "SingleSignOn"; 194 valveFm.setNodeLabel("Valve (" + valveType + ")"); 195 valveFm.setValveType(valveType); 196 valveFm.setValveTypeVals(types); 197 } 198 199 } 200 | Popular Tags |