OSDN Git Service

Initial commit
[ultramonkey-l7/l7gui.git] / src / src / org / ultramonkey / l7 / view / SnmpAgentServlet.java
1 package org.ultramonkey.l7.view;
2
3 import java.io.IOException;
4 import java.util.Enumeration;
5
6 import javax.servlet.ServletException;
7 import javax.servlet.http.HttpServletRequest;
8 import javax.servlet.http.HttpServletResponse;
9 import javax.servlet.http.HttpSession;
10
11 import org.apache.log4j.Logger;
12 import org.ultramonkey.l7.controller.SnmpAgentData;
13 import org.ultramonkey.l7.model.ExecuteMode;
14 import org.ultramonkey.l7.model.L7guiFramework;
15 import org.ultramonkey.l7.model.LogCategorySet;
16 import org.ultramonkey.l7.model.Message;
17 import org.ultramonkey.l7.model.MessageView;
18 import org.ultramonkey.l7.model.SessionTransData;
19
20 /**
21  * <p>
22  * class VSModServlet
23  * </p>
24  * <p>
25  * Copyright(c) NTT COMWARE 2008
26  * </p>
27  * 
28  * @author kobayashi
29  */
30 public class SnmpAgentServlet extends org.ultramonkey.l7.view.L7guiServletBase {
31         static final long serialVersionUID = 1L;
32
33         private Logger logger = Logger.getLogger(LogCategorySet.GUI_IO);
34
35         /*
36          * (non-Java-doc)
37          * 
38          * @see javax.servlet.http.HttpServlet#HttpServlet()
39          */
40         public SnmpAgentServlet() {
41                 super();
42                 // --- debug log (constructor) ---
43                 if (logger.isDebugEnabled()) {
44                         logger.debug("11261 class SnmpAgentServlet created.");
45                 }
46                 // --- debug log (constructor) ---
47         }
48
49         /*
50          * (non-Java-doc)
51          * 
52          * @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request,
53          *      HttpServletResponse response)
54          */
55         protected void doGet(HttpServletRequest request,
56                         HttpServletResponse response) throws ServletException, IOException {
57                 // --- debug log (in method) ---
58                 if (logger.isDebugEnabled()) {
59                         StringBuffer buf = new StringBuffer();
60                         buf.append("SnmpAgentServlet::doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException in ");
61                         buf.append("request=(" + request + "), ");
62                         buf.append("response=(" + response + ")");
63                         logger.debug("11262 " + buf.toString());
64                         request.setCharacterEncoding("UTF-8");
65                         logger.debug("11263 QueryString=\"" + request.getQueryString() + "\"");
66                 }
67                 // --- debug log (in method) ---
68
69                 response.sendRedirect(RedirectPages.LOGIN);
70
71                 // --- debug log (out method) ---
72                 if (logger.isDebugEnabled()) {
73                         logger.debug("11264 SnmpAgentServlet::doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException out");
74                 }
75                 // --- debug log (out method) ---
76                 return;
77         }
78
79         /*
80          * (non-Java-doc)
81          * 
82          * @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest request,
83          *      HttpServletResponse response)
84          */
85         protected void doPost(HttpServletRequest request,
86                         HttpServletResponse response) throws ServletException, IOException {
87                 // --- debug log (in method) ---
88                 if (logger.isDebugEnabled()) {
89                         StringBuffer buf = new StringBuffer();
90                         buf.append("SnmpAgentServlet::doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException in ");
91                         buf.append("request=(" + request + "), ");
92                         buf.append("response=(" + response + ")");
93                         logger.debug("11265 " + buf.toString());
94                         request.setCharacterEncoding("UTF-8");
95                         Enumeration keys = request.getParameterNames();
96                         String post = "";
97                         while (keys.hasMoreElements()) {
98                                 if (post.length() != 0)
99                                         post += "&";
100                                 String key = (String) keys.nextElement();
101                                 post += key + "=" + request.getParameter(key);
102                         }
103                         logger.debug("11266 PostData=\"" + post + "\"");
104                 }
105                 // --- debug log (in method) ---
106
107                 // check login session
108                 super.doPost(request, response);
109
110                 HttpSession session = request.getSession(false);
111                 if (login == false || session == null) {
112                         if (session != null) {
113                                 MessageView error = new MessageView(41059,
114                                                 LogCategorySet.GUI_USER_AUTHENTICATION,
115                                                 Message.INVALID_SESSSION);
116                                 session.setAttribute(SessionKeys.RESULT_MESSAGE, error);
117                         }
118                         response.sendRedirect(RedirectPages.LOGIN);
119                         // --- debug log (out method) ---
120                         if (logger.isDebugEnabled()) {
121                                 logger.debug("11267 SnmpAgentServlet::doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException out");
122                         }
123                         // --- debug log (out method) ---
124                         return;
125                 }
126
127                 /*
128                  * get SnmpAgentData
129                  */
130                 request.setCharacterEncoding("UTF-8");
131                 String str_snmpInterval = request.getParameter("snmp_interval");
132                 if (str_snmpInterval == null) {
133                         MessageView error = new MessageView(41060, LogCategorySet.GUI_SNMP,
134                                         Message.UNEXPECTED_ERROR);
135                         session.setAttribute(SessionKeys.RESULT_MESSAGE, error);
136                         response.sendRedirect(RedirectPages.LOGIN);
137                         // --- debug log (out method) ---
138                         if (logger.isDebugEnabled()) {
139                                 logger.debug("11268 SnmpAgentServlet::doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException out");
140                         }
141                         // --- debug log (out method) ---
142                         return;
143                 }
144
145                 // unit_snmpInterval
146                 String unit_snmpInterval = request.getParameter("unit_interval");
147                 if (unit_snmpInterval == null) {
148                         MessageView error = new MessageView(41061, LogCategorySet.GUI_SNMP,
149                                         Message.UNEXPECTED_ERROR);
150                         session.setAttribute(SessionKeys.RESULT_MESSAGE, error);
151                         response.sendRedirect(RedirectPages.LOGIN);
152                         // --- debug log (out method) ---
153                         if (logger.isDebugEnabled()) {
154                                 logger.debug("11269 SnmpAgentServlet::doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException out");
155                         }
156                         // --- debug log (out method) ---
157                         return;
158                 }
159
160                 // SnmpAgetData
161                 L7guiFramework frameWork = new L7guiFramework();
162                 SnmpAgentData snmp = frameWork.getSnmpAgentData();
163                 if (snmp == null) {
164                         MessageView error = new MessageView(41062, LogCategorySet.GUI_SNMP,
165                                         Message.UNEXPECTED_ERROR);
166                         session.setAttribute(SessionKeys.RESULT_MESSAGE, error);
167                         response.sendRedirect(RedirectPages.LOGIN);
168                         // --- debug log (out method) ---
169                         if (logger.isDebugEnabled()) {
170                                 logger.debug("11270 SnmpAgentServlet::doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException out");
171                         }
172                         // --- debug log (out method) ---
173                         return;
174                 }
175
176                 /*
177                  * validationCheck
178                  */
179                 boolean validationFlag = validationcheck(session, str_snmpInterval,
180                                 snmp);
181                 if (validationFlag == false) {
182                         session.setAttribute(SessionKeys.INPUT_SNMP, snmp);
183                         session
184                                         .setAttribute(SessionKeys.INPUT_SNMP_UNIT,
185                                                         unit_snmpInterval);
186                         MessageView error = new MessageView(21037, LogCategorySet.GUI_SNMP,
187                                         Message.INVALID_VALUE);
188                         session.setAttribute(SessionKeys.RESULT_MESSAGE, error);
189                         response.sendRedirect(RedirectPages.SNMP_MODIFY);
190                         // --- debug log (out method) ---
191                         if (logger.isDebugEnabled()) {
192                                 logger.debug("11271 SnmpAgentServlet::doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException out");
193                         }
194                         // --- debug log (out method) ---
195                         return;
196                 }
197
198                 /*
199                  * set unit_snmpInterval
200                  */
201                 if (unit_snmpInterval.equals("ms")) {
202                         //
203                 } else if (unit_snmpInterval.equals("s")) {
204                         snmp.interval *= 1000;
205                 } else {
206                         session.setAttribute(SessionKeys.INPUT_SNMP, snmp);
207                         session
208                                         .setAttribute(SessionKeys.INPUT_SNMP_UNIT,
209                                                         unit_snmpInterval);
210                         MessageView error = new MessageView(21038, LogCategorySet.GUI_SNMP,
211                                         Message.INVALID_VALUE);
212                         session.setAttribute(SessionKeys.RESULT_MESSAGE, error);
213                         response.sendRedirect(RedirectPages.SNMP_MODIFY);
214                         // --- debug log (out method) ---
215                         if (logger.isDebugEnabled()) {
216                                 logger.debug("11272 SnmpAgentServlet::doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException out");
217                         }
218                         // --- debug log (out method) ---
219                         return;
220                 }
221
222                 CommandExecuter thread = new CommandExecuter(session);
223
224                 ExecuteMode mode;
225                 String redirectPage;
226
227                 String button_mode = request.getParameter("button");
228                 // button mode : null
229                 if (button_mode == null) {
230                         MessageView error = new MessageView(41063, LogCategorySet.GUI_SNMP,
231                                         Message.UNEXPECTED_ERROR);
232                         session.setAttribute(SessionKeys.RESULT_MESSAGE, error);
233                         response.sendRedirect(RedirectPages.LOGIN);
234                         // --- debug log (out method) ---
235                         if (logger.isDebugEnabled()) {
236                                 logger.debug("11273 SnmpAgentServlet::doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException out");
237                         }
238                         // --- debug log (out method) ---
239                         return;
240                 }
241                 // button mode : save
242                 else if (button_mode.equals(ButtonMode.SAVE)) {
243                         mode = ExecuteMode.SNMP_INFO_SAVE;
244                         redirectPage = RedirectPages.SNMP_MODIFY_EXECUTIVE;
245                 }
246                 // button mode : save and sync
247                 else if (button_mode.equals(ButtonMode.SAVESYNC)) {
248                         mode = ExecuteMode.SNMP_INFO_SAVESYNC;
249                         redirectPage = RedirectPages.SAVE_SYNC_EXECUTIVE;
250
251                         SessionTransData trans = new SessionTransData();
252                         trans.sourceURI = RedirectPages.SNMP_MODIFY;
253                         trans.destURI = RedirectPages.SNMP_MODIFY;
254                         trans.errorURI = RedirectPages.SNMP_MODIFY_NG;
255                         session.setAttribute(SessionKeys.PAGE_TRANSDATA, trans);
256                 } else {
257                         MessageView error = new MessageView(41064, LogCategorySet.GUI_SNMP,
258                                         Message.UNEXPECTED_ERROR);
259                         session.setAttribute(SessionKeys.RESULT_MESSAGE, error);
260                         response.sendRedirect(RedirectPages.LOGIN);
261                         // --- debug log (out method) ---
262                         if (logger.isDebugEnabled()) {
263                                 logger.debug("11274 SnmpAgentServlet::doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException out");
264                         }
265                         // --- debug log (out method) ---
266                         return;
267                 }
268
269                 try {
270                         thread.setExecute(mode, snmp);
271                         thread.start();
272                 } catch (Exception e) {
273                         MessageView error = new MessageView(41065, LogCategorySet.GUI_SNMP,
274                                         Message.UNEXPECTED_ERROR);
275                         session.setAttribute(SessionKeys.RESULT_MESSAGE, error);
276                         response.sendRedirect(RedirectPages.LOGIN);
277                         // --- debug log (out method) ---
278                         if (logger.isDebugEnabled()) {
279                                 logger.debug("11275 SnmpAgentServlet::doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException out");
280                         }
281                         // --- debug log (out method) ---
282                         return;
283                 }
284                 response.sendRedirect(redirectPage);
285                 // --- debug log (out method) ---
286                 if (logger.isDebugEnabled()) {
287                         logger.debug("11276 SnmpAgentServlet::doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException out");
288                 }
289                 // --- debug log (out method) ---
290                 return;
291         }
292
293         /**
294          * 
295          * <p>
296          * validationCheck method
297          * </p>
298          * 
299          * @param session
300          * @param str_snmpInterval
301          * @param snmp
302          * @return
303          */
304
305         private boolean validationcheck(HttpSession session,
306                         String str_SnmpInterval, SnmpAgentData snmp) {
307                 // --- debug log (in method) ---
308                 if (logger.isDebugEnabled()) {
309                         StringBuffer buf = new StringBuffer();
310                         buf.append("SnmpAgentServlet::validationCheck(HttpSession session, String str_SnmpInterval, SnmpAgentData snmp) in ");
311                         buf.append("session=(" + session + "), ");
312                         buf.append("str_SnmpInterval=(" + str_SnmpInterval + "), ");
313                         buf.append("snmp=(" + snmp + ")");
314                         logger.debug("11277 " + buf.toString());
315                 }
316                 // --- debug log (in method) ---
317
318                 boolean validationFlag = true;
319
320                 int MIN_SNMP_INTERVAL = 1;
321                 int MAX_SNMP_INTERVAL = 999;
322                 int int_SnmpInterval = 1;
323
324                 if (str_SnmpInterval.length() == 0) {
325                         session.setAttribute(SessionKeys.INVALID_MESSAGE,
326                                         Message.REQUIED_ITEM);
327                         validationFlag = false;
328                 } else {
329                         try {
330                                 int_SnmpInterval = Integer.parseInt(str_SnmpInterval);
331                                 if ((int_SnmpInterval < MIN_SNMP_INTERVAL)
332                                                 || (int_SnmpInterval > MAX_SNMP_INTERVAL)) {
333                                         session.setAttribute(SessionKeys.INVALID_MESSAGE,
334                                                         Message.VALIDATION_ERROR);
335                                         validationFlag = false;
336                                 }
337                         } catch (NumberFormatException e) {
338                                 session.setAttribute(SessionKeys.INVALID_MESSAGE,
339                                                 Message.VALIDATION_ERROR);
340                                 validationFlag = false;
341                         }
342                 }
343                 snmp.interval = int_SnmpInterval;
344
345                 // --- debug log (out method) ---
346                 if (logger.isDebugEnabled()) {
347                         logger.debug("11278 SnmpAgentServlet::validationCheck(HttpSession session, String str_SnmpInterval, SnmpAgentData snmp) out return=" + validationFlag);
348                 }
349                 // --- debug log (out method) ---
350                 return validationFlag;
351         }
352 }