KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > webapp > admin > valve > AddValveAction


1 /*
2  * Copyright 2001-2002,2004 The Apache Software Foundation.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

16
17 package org.apache.webapp.admin.valve;
18
19 import java.io.IOException JavaDoc;
20 import java.net.URLEncoder JavaDoc;
21 import java.util.Locale JavaDoc;
22 import java.util.ArrayList JavaDoc;
23 import javax.servlet.ServletException JavaDoc;
24 import javax.servlet.http.HttpServletRequest JavaDoc;
25 import javax.servlet.http.HttpServletResponse JavaDoc;
26 import javax.servlet.http.HttpSession JavaDoc;
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 /**
38  * The <code>Action</code> that sets up <em>Add Valve</em> transactions.
39  *
40  * @author Manveen Kaur
41  * @version $Revision: 1.10 $ $Date: 2004/10/18 06:37:55 $
42  */

43
44 public class AddValveAction extends Action {
45         
46     // the list for types of valves
47
private ArrayList JavaDoc types = null;
48
49     // --------------------------------------------------------- Public Methods
50

51     /**
52      * Process the specified HTTP request, and create the corresponding HTTP
53      * response (or forward to another web component that will create it).
54      * Return an <code>ActionForward</code> instance describing where and how
55      * control should be forwarded, or <code>null</code> if the response has
56      * already been completed.
57      *
58      * @param mapping The ActionMapping used to select this instance
59      * @param actionForm The optional ActionForm bean for this request (if any)
60      * @param request The HTTP request we are processing
61      * @param response The HTTP response we are creating
62      *
63      * @exception IOException if an input/output error occurs
64      * @exception ServletException if a servlet exception occurs
65      */

66     public ActionForward execute(ActionMapping mapping,
67                                  ActionForm form,
68                                  HttpServletRequest JavaDoc request,
69                                  HttpServletResponse JavaDoc response)
70         throws IOException JavaDoc, ServletException JavaDoc {
71
72         // Acquire the resources that we need
73
HttpSession JavaDoc session = request.getSession();
74         Locale JavaDoc locale = getLocale(request);
75         MessageResources resources = getResources(request);
76         
77         // Fill in the form values for display and editing
78

79         String JavaDoc valveTypes[] = new String JavaDoc[5];
80         valveTypes[0] = "AccessLogValve";
81         valveTypes[1] = "RemoteAddrValve";
82         valveTypes[2] = "RemoteHostValve";
83         valveTypes[3] = "RequestDumperValve";
84         valveTypes[4] = "SingleSignOn";
85                      
86         String JavaDoc parent = request.getParameter("parent");
87         String JavaDoc type = request.getParameter("type");
88         if (type == null)
89             type = "AccessLogValve"; // default type is AccessLog
90

91         types = new ArrayList JavaDoc();
92         // the first element in the select list should be the type selected
93
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             //SingleSignOn
116
createSingleSignOnValve(session, parent);
117         }
118         // Forward to the valve display page
119
return (mapping.findForward(type));
120         
121     }
122
123     private void createAccessLogger(HttpSession JavaDoc session, String JavaDoc 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 JavaDoc 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 JavaDoc session, String JavaDoc 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 JavaDoc 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 JavaDoc session, String JavaDoc 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 JavaDoc 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 JavaDoc session, String JavaDoc 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 JavaDoc valveType = "RequestDumperValve";
181         valveFm.setNodeLabel("Valve (" + valveType + ")");
182         valveFm.setValveType(valveType);
183         valveFm.setValveTypeVals(types);
184     }
185
186     private void createSingleSignOnValve(HttpSession JavaDoc session, String JavaDoc 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 JavaDoc valveType = "SingleSignOn";
194         valveFm.setNodeLabel("Valve (" + valveType + ")");
195         valveFm.setValveType(valveType);
196         valveFm.setValveTypeVals(types);
197     }
198
199 }
200
Popular Tags