1
22
23 package com.liferay.util.servlet;
24
25 import com.liferay.portal.kernel.util.GetterUtil;
26 import com.liferay.portal.kernel.util.StringPool;
27 import com.liferay.util.PwdGenerator;
28 import com.liferay.util.SystemProperties;
29
30 import java.util.HashMap;
31 import java.util.LinkedHashMap;
32 import java.util.Map;
33
34 import javax.portlet.PortletRequest;
35 import javax.portlet.PortletSession;
36
37 import javax.servlet.http.HttpServletRequest;
38 import javax.servlet.http.HttpSession;
39
40
46 public class SessionParameters {
47
48 public static final boolean USE_SESSION_PARAMETERS = GetterUtil.getBoolean(
49 SystemProperties.get(SessionParameters.class.getName()), true);
50
51 public static final String KEY = SessionParameters.class.getName();
52
53
55 public static String get(HttpServletRequest req, String parameter) {
56 return get(req.getSession(), parameter);
57 }
58
59 public static String get(HttpSession ses, String parameter) {
60 if (!USE_SESSION_PARAMETERS) {
61 return parameter;
62 }
63
64 Map<String, String> parameters = _getParameters(ses);
65
66 String newParameter = parameters.get(parameter);
67
68 if (newParameter == null) {
69 newParameter =
70 PwdGenerator.getPassword() + StringPool.UNDERLINE + parameter;
71
72 parameters.put(parameter, newParameter);
73 }
74
75 return newParameter;
76 }
77
78 private static Map<String, String> _getParameters(HttpSession ses) {
79 Map<String, String> parameters = null;
80
81 try {
82 parameters = (Map<String, String>)ses.getAttribute(KEY);
83
84 if (parameters == null) {
85 parameters = new HashMap<String, String>();
86
87 ses.setAttribute(KEY, parameters);
88 }
89 }
90 catch (IllegalStateException ise) {
91 parameters = new HashMap<String, String>();
92 }
93
94 return parameters;
95 }
96
97
99 public static String get(PortletRequest req, String parameter) {
100 return get(req.getPortletSession(), parameter);
101 }
102
103 public static String get(PortletSession ses, String parameter) {
104 if (!USE_SESSION_PARAMETERS) {
105 return parameter;
106 }
107
108 Map<String, String> parameters = _getParameters(ses);
109
110 String newParameter = parameters.get(parameter);
111
112 if (newParameter == null) {
113 newParameter =
114 PwdGenerator.getPassword() + StringPool.UNDERLINE + parameter;
115
116 parameters.put(parameter, newParameter);
117 }
118
119 return newParameter;
120 }
121
122 private static Map<String, String> _getParameters(PortletSession ses) {
123 Map<String, String> parameters = null;
124
125 try {
126 parameters = (Map<String, String>)ses.getAttribute(KEY);
127
128 if (parameters == null) {
129 parameters = new LinkedHashMap<String, String>();
130
131 ses.setAttribute(KEY, parameters);
132 }
133 }
134 catch (IllegalStateException ise) {
135 parameters = new LinkedHashMap<String, String>();
136 }
137
138 return parameters;
139 }
140
141 }