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