1 |
|
|
2 |
|
|
3 |
|
|
4 |
|
|
5 |
|
|
6 |
|
|
7 |
|
|
8 |
|
|
9 |
|
|
10 |
|
|
11 |
|
|
12 |
|
|
13 |
|
|
14 |
|
|
15 |
|
|
16 |
|
|
17 |
|
|
18 |
|
|
19 |
|
|
20 |
|
package org.xwiki.container.servlet.filters; |
21 |
|
|
22 |
|
import java.io.Serializable; |
23 |
|
import java.util.HashMap; |
24 |
|
import java.util.Map; |
25 |
|
|
26 |
|
import javax.servlet.http.HttpServletRequest; |
27 |
|
import javax.servlet.http.HttpSession; |
28 |
|
|
29 |
|
import org.apache.commons.lang3.RandomStringUtils; |
30 |
|
import org.apache.commons.lang3.StringUtils; |
31 |
|
|
32 |
|
|
33 |
|
|
34 |
|
|
35 |
|
@version |
36 |
|
@since |
37 |
|
|
|
|
| 89.2% |
Uncovered Elements: 4 (37) |
Complexity: 10 |
Complexity Density: 0.45 |
|
38 |
|
public final class SavedRequestManager |
39 |
|
{ |
40 |
|
|
41 |
|
private static final String SAVED_REQUESTS_IDENTIFIER = "srid"; |
42 |
|
|
43 |
|
|
44 |
|
private static final String SAVED_REQUESTS_KEY = SavedRequest.class.getCanonicalName() + "_SavedRequests"; |
45 |
|
|
46 |
|
|
47 |
|
|
48 |
|
|
|
|
| 31.2% |
Uncovered Elements: 11 (16) |
Complexity: 7 |
Complexity Density: 0.78 |
|
49 |
|
public static class SavedRequest implements Serializable |
50 |
|
{ |
51 |
|
|
52 |
|
private static final long serialVersionUID = 8779129900717599986L; |
53 |
|
|
54 |
|
|
55 |
|
private Map<String, String[]> parameters; |
56 |
|
|
57 |
|
|
58 |
|
|
59 |
|
|
60 |
|
|
61 |
|
private String requestUrl; |
62 |
|
|
63 |
|
|
64 |
|
|
65 |
|
|
66 |
|
@param |
67 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (2) |
Complexity: 1 |
Complexity Density: 0.5 |
|
68 |
6 |
@SuppressWarnings("unchecked")... |
69 |
|
public SavedRequest(HttpServletRequest request) |
70 |
|
{ |
71 |
6 |
this.parameters = new HashMap<String, String[]>(request.getParameterMap()); |
72 |
6 |
this.requestUrl = request.getRequestURL().toString(); |
73 |
|
} |
74 |
|
|
75 |
|
|
76 |
|
@link |
77 |
|
|
78 |
|
@param |
79 |
|
@return |
80 |
|
@see |
81 |
|
@see |
82 |
|
|
|
|
| 0% |
Uncovered Elements: 6 (6) |
Complexity: 3 |
Complexity Density: 0.75 |
|
83 |
0 |
public String getParameter(String name)... |
84 |
|
{ |
85 |
0 |
String[] values = this.parameters.get(name); |
86 |
0 |
if (values != null && values.length > 0) { |
87 |
0 |
return values[0]; |
88 |
|
} |
89 |
0 |
return null; |
90 |
|
} |
91 |
|
|
92 |
|
|
93 |
|
|
94 |
|
@link |
95 |
|
|
96 |
|
@param |
97 |
|
@return |
98 |
|
@see |
99 |
|
@see |
100 |
|
|
|
|
| 0% |
Uncovered Elements: 1 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
101 |
0 |
public String[] getParameterValues(String name)... |
102 |
|
{ |
103 |
0 |
return this.parameters.get(name); |
104 |
|
} |
105 |
|
|
106 |
|
|
107 |
|
@link |
108 |
|
|
109 |
|
@return |
110 |
|
@see |
111 |
|
|
|
|
| 0% |
Uncovered Elements: 1 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
112 |
0 |
public Map<String, String[]> getParameterMap()... |
113 |
|
{ |
114 |
0 |
return this.parameters; |
115 |
|
} |
116 |
|
|
117 |
|
|
118 |
|
|
119 |
|
|
120 |
|
|
121 |
|
@return |
122 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
123 |
1 |
public String getRequestUrl()... |
124 |
|
{ |
125 |
1 |
return this.requestUrl; |
126 |
|
} |
127 |
|
} |
128 |
|
|
129 |
|
|
130 |
|
@link |
131 |
|
|
|
|
| - |
Uncovered Elements: 0 (0) |
Complexity: 1 |
Complexity Density: - |
|
132 |
0 |
private SavedRequestManager()... |
133 |
|
{ |
134 |
|
} |
135 |
|
|
136 |
|
|
137 |
|
@return |
138 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
139 |
37 |
public static String getSavedRequestIdentifier()... |
140 |
|
{ |
141 |
37 |
return SAVED_REQUESTS_IDENTIFIER; |
142 |
|
} |
143 |
|
|
144 |
|
|
145 |
|
@return |
146 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
147 |
7 |
public static String getSavedRequestKey()... |
148 |
|
{ |
149 |
7 |
return SAVED_REQUESTS_KEY; |
150 |
|
} |
151 |
|
|
152 |
|
|
153 |
|
|
154 |
|
|
155 |
|
|
156 |
|
|
157 |
|
@param |
158 |
|
@return |
159 |
|
|
|
|
| 93.3% |
Uncovered Elements: 1 (15) |
Complexity: 3 |
Complexity Density: 0.27 |
|
160 |
3 |
@SuppressWarnings("unchecked")... |
161 |
|
public static String saveRequest(HttpServletRequest request) |
162 |
|
{ |
163 |
|
|
164 |
3 |
HttpSession session = request.getSession(); |
165 |
|
|
166 |
3 |
Map<String, SavedRequest> savedRequests = |
167 |
|
(Map<String, SavedRequest>) session.getAttribute(getSavedRequestKey()); |
168 |
3 |
if (savedRequests == null) { |
169 |
1 |
savedRequests = new HashMap<String, SavedRequest>(); |
170 |
1 |
session.setAttribute(getSavedRequestKey(), savedRequests); |
171 |
|
} |
172 |
|
|
173 |
3 |
SavedRequest savedRequest = new SavedRequest(request); |
174 |
|
|
175 |
3 |
String key; |
176 |
3 |
do { |
177 |
3 |
key = RandomStringUtils.randomAlphanumeric(8); |
178 |
3 |
} while (savedRequests.containsKey(key)); |
179 |
|
|
180 |
3 |
savedRequests.put(key, savedRequest); |
181 |
|
|
182 |
3 |
return key; |
183 |
|
} |
184 |
|
|
185 |
|
|
186 |
|
|
187 |
|
|
188 |
|
|
189 |
|
|
190 |
|
@param |
191 |
|
@return |
192 |
|
|
193 |
|
|
|
|
| 86.7% |
Uncovered Elements: 2 (15) |
Complexity: 4 |
Complexity Density: 0.44 |
|
194 |
2 |
@SuppressWarnings("unchecked")... |
195 |
|
public static String getOriginalUrl(HttpServletRequest request) |
196 |
|
{ |
197 |
2 |
HttpSession session = request.getSession(); |
198 |
2 |
Map<String, SavedRequest> savedRequests = |
199 |
|
(Map<String, SavedRequest>) session.getAttribute(getSavedRequestKey()); |
200 |
2 |
if (savedRequests != null) { |
201 |
1 |
String identifier = request.getParameter(getSavedRequestIdentifier()); |
202 |
1 |
if (!StringUtils.isEmpty(identifier)) { |
203 |
1 |
SavedRequest savedRequest = savedRequests.get(request.getParameter(getSavedRequestIdentifier())); |
204 |
1 |
if (savedRequest != null) { |
205 |
1 |
return savedRequest.getRequestUrl() + "?srid=" + identifier; |
206 |
|
} |
207 |
|
} |
208 |
|
} |
209 |
1 |
return null; |
210 |
|
} |
211 |
|
} |