annotate gnv/src/main/java/de/intevation/gnv/action/ArtifactDatabaseActionBase.java @ 705:f550bd27a3f1

Html characters in strings inserted by the user are quoted (issue221). gnv/trunk@969 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Thu, 22 Apr 2010 12:58:44 +0000
parents 89ade245ca7a
children 0441e78cd900
rev   line source
4
72951b955f00 Basic Struts-Infrastructur Added
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
1 package de.intevation.gnv.action;
72951b955f00 Basic Struts-Infrastructur Added
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
2
72951b955f00 Basic Struts-Infrastructur Added
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
3 import javax.servlet.http.HttpServletRequest;
72951b955f00 Basic Struts-Infrastructur Added
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
4 import javax.servlet.http.HttpServletResponse;
72951b955f00 Basic Struts-Infrastructur Added
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
5
72951b955f00 Basic Struts-Infrastructur Added
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
6 import org.apache.log4j.Logger;
409
df78178e1180 Moved user interface creation to an own action. This makes avoids code duplication and makes it easier to write new action to handle special interactions, because there is no need for parsing the describe document and creating the user interface after this.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 408
diff changeset
7
4
72951b955f00 Basic Struts-Infrastructur Added
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
8 import org.apache.struts.action.Action;
72951b955f00 Basic Struts-Infrastructur Added
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
9 import org.apache.struts.action.ActionForm;
72951b955f00 Basic Struts-Infrastructur Added
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
10 import org.apache.struts.action.ActionForward;
72951b955f00 Basic Struts-Infrastructur Added
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
11 import org.apache.struts.action.ActionMapping;
72951b955f00 Basic Struts-Infrastructur Added
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
12
72951b955f00 Basic Struts-Infrastructur Added
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
13 /**
684
57fa8019fbdc Bring @author javadoc tags in form '@author <a href="john.doe@example.com">John Doe</a>'
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 683
diff changeset
14 * @author <a href="mailto:tim.englich@intevation.de">Tim Englich</a>
681
15ac78a91d1b Removed trailing whitespace.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 409
diff changeset
15 *
4
72951b955f00 Basic Struts-Infrastructur Added
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
16 */
72951b955f00 Basic Struts-Infrastructur Added
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
17 public class ArtifactDatabaseActionBase extends Action {
72951b955f00 Basic Struts-Infrastructur Added
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
18
8
65ff6fcfee0c Some Basic Stuff for WebProjects
Tim Englich <tim.englich@intevation.de>
parents: 4
diff changeset
19 protected final static String SUCCSESS_FORWARD_ID = "success";
34
25fdec8b4c69 Added Global Errorhandling to the GNV-Client
Tim Englich <tim.englich@intevation.de>
parents: 8
diff changeset
20 protected final static String EXCEPTION_FORWARD_ID = "success";
36
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 34
diff changeset
21
4
72951b955f00 Basic Struts-Infrastructur Added
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
22 /**
72951b955f00 Basic Struts-Infrastructur Added
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
23 * the logger, used to log exceptions and additonaly information
72951b955f00 Basic Struts-Infrastructur Added
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
24 */
36
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 34
diff changeset
25 private static Logger log = Logger
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 34
diff changeset
26 .getLogger(ArtifactDatabaseActionBase.class);
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 34
diff changeset
27
4
72951b955f00 Basic Struts-Infrastructur Added
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
28 /**
72951b955f00 Basic Struts-Infrastructur Added
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
29 * Constructor
72951b955f00 Basic Struts-Infrastructur Added
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
30 */
72951b955f00 Basic Struts-Infrastructur Added
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
31 public ArtifactDatabaseActionBase() {
72951b955f00 Basic Struts-Infrastructur Added
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
32 super();
72951b955f00 Basic Struts-Infrastructur Added
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
33 }
72951b955f00 Basic Struts-Infrastructur Added
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
34
690
254f062e334b Added JavaDoc.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 684
diff changeset
35
4
72951b955f00 Basic Struts-Infrastructur Added
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
36 @Override
72951b955f00 Basic Struts-Infrastructur Added
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
37 public ActionForward execute(ActionMapping mapping, ActionForm form,
38
fccf90761825 Format Code to max 80 Chars per Row better Formatter choosen
Tim Englich <tim.englich@intevation.de>
parents: 36
diff changeset
38 HttpServletRequest request,
fccf90761825 Format Code to max 80 Chars per Row better Formatter choosen
Tim Englich <tim.englich@intevation.de>
parents: 36
diff changeset
39 HttpServletResponse response) throws Exception {
8
65ff6fcfee0c Some Basic Stuff for WebProjects
Tim Englich <tim.englich@intevation.de>
parents: 4
diff changeset
40 log.debug("ArtifactDatabaseActionBase.execute");
409
df78178e1180 Moved user interface creation to an own action. This makes avoids code duplication and makes it easier to write new action to handle special interactions, because there is no need for parsing the describe document and creating the user interface after this.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 408
diff changeset
41
34
25fdec8b4c69 Added Global Errorhandling to the GNV-Client
Tim Englich <tim.englich@intevation.de>
parents: 8
diff changeset
42 ActionForward forward = mapping.findForward(SUCCSESS_FORWARD_ID);
25fdec8b4c69 Added Global Errorhandling to the GNV-Client
Tim Englich <tim.englich@intevation.de>
parents: 8
diff changeset
43 return forward;
25fdec8b4c69 Added Global Errorhandling to the GNV-Client
Tim Englich <tim.englich@intevation.de>
parents: 8
diff changeset
44 }
36
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 34
diff changeset
45
690
254f062e334b Added JavaDoc.
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 684
diff changeset
46
36
ad381cc47217 Format Code to max 80 Chars per Row
Tim Englich <tim.englich@intevation.de>
parents: 34
diff changeset
47 protected ActionForward getExceptionForward(ActionMapping mapping) {
34
25fdec8b4c69 Added Global Errorhandling to the GNV-Client
Tim Englich <tim.englich@intevation.de>
parents: 8
diff changeset
48 log.debug("ArtifactDatabaseActionBase.getExceptionForward");
25fdec8b4c69 Added Global Errorhandling to the GNV-Client
Tim Englich <tim.englich@intevation.de>
parents: 8
diff changeset
49 ActionForward lForward = mapping.findForward(EXCEPTION_FORWARD_ID);
8
65ff6fcfee0c Some Basic Stuff for WebProjects
Tim Englich <tim.englich@intevation.de>
parents: 4
diff changeset
50 return lForward;
4
72951b955f00 Basic Struts-Infrastructur Added
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
51 }
705
f550bd27a3f1 Html characters in strings inserted by the user are quoted (issue221).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 700
diff changeset
52
f550bd27a3f1 Html characters in strings inserted by the user are quoted (issue221).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 700
diff changeset
53
f550bd27a3f1 Html characters in strings inserted by the user are quoted (issue221).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 700
diff changeset
54 protected String encode(String s) {
f550bd27a3f1 Html characters in strings inserted by the user are quoted (issue221).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 700
diff changeset
55 log.debug("String to encode: " + s);
f550bd27a3f1 Html characters in strings inserted by the user are quoted (issue221).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 700
diff changeset
56 s = s.replaceAll("<", "&lt;");
f550bd27a3f1 Html characters in strings inserted by the user are quoted (issue221).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 700
diff changeset
57 s = s.replaceAll(">", "&gt;");
f550bd27a3f1 Html characters in strings inserted by the user are quoted (issue221).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 700
diff changeset
58 s = s.replaceAll("\"", "&quot;");
f550bd27a3f1 Html characters in strings inserted by the user are quoted (issue221).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 700
diff changeset
59 s = s.replaceAll("&", "&amp;");
f550bd27a3f1 Html characters in strings inserted by the user are quoted (issue221).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 700
diff changeset
60
f550bd27a3f1 Html characters in strings inserted by the user are quoted (issue221).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 700
diff changeset
61 log.debug("Encoded string: " + s);
f550bd27a3f1 Html characters in strings inserted by the user are quoted (issue221).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 700
diff changeset
62 return s;
f550bd27a3f1 Html characters in strings inserted by the user are quoted (issue221).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 700
diff changeset
63 }
f550bd27a3f1 Html characters in strings inserted by the user are quoted (issue221).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 700
diff changeset
64
f550bd27a3f1 Html characters in strings inserted by the user are quoted (issue221).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 700
diff changeset
65
f550bd27a3f1 Html characters in strings inserted by the user are quoted (issue221).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 700
diff changeset
66 protected String[] encode(String[] s) {
f550bd27a3f1 Html characters in strings inserted by the user are quoted (issue221).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 700
diff changeset
67 if (s == null)
f550bd27a3f1 Html characters in strings inserted by the user are quoted (issue221).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 700
diff changeset
68 return null;
f550bd27a3f1 Html characters in strings inserted by the user are quoted (issue221).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 700
diff changeset
69
f550bd27a3f1 Html characters in strings inserted by the user are quoted (issue221).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 700
diff changeset
70 String[] good = new String[s.length];
f550bd27a3f1 Html characters in strings inserted by the user are quoted (issue221).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 700
diff changeset
71 for (int i = 0; i < good.length; i++) {
f550bd27a3f1 Html characters in strings inserted by the user are quoted (issue221).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 700
diff changeset
72 good[i] = encode(s[i]);
f550bd27a3f1 Html characters in strings inserted by the user are quoted (issue221).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 700
diff changeset
73 }
f550bd27a3f1 Html characters in strings inserted by the user are quoted (issue221).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 700
diff changeset
74
f550bd27a3f1 Html characters in strings inserted by the user are quoted (issue221).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 700
diff changeset
75 return good;
f550bd27a3f1 Html characters in strings inserted by the user are quoted (issue221).
Ingo Weinzierl <ingo.weinzierl@intevation.de>
parents: 700
diff changeset
76 }
4
72951b955f00 Basic Struts-Infrastructur Added
Tim Englich <tim.englich@intevation.de>
parents:
diff changeset
77 }
700
89ade245ca7a Using unix line endings only.
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents: 690
diff changeset
78 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org