1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package info.magnolia.cms.core;
35
36 import info.magnolia.cms.beans.runtime.File;
37 import info.magnolia.util.EscapeUtil;
38
39 import java.util.Arrays;
40 import java.util.Locale;
41
42 import javax.inject.Inject;
43 import javax.inject.Provider;
44 import javax.jcr.Node;
45
46
47
48
49
50
51
52
53
54
55
56
57
58 public class HTMLEscapingAggregationState extends AggregationState {
59
60 final private Provider<AggregationState> aggregationStateProvider;
61
62 @Inject
63 protected HTMLEscapingAggregationState(Provider<AggregationState> aggregationStateProvider) {
64 this.aggregationStateProvider = aggregationStateProvider;
65 }
66
67
68
69
70
71
72
73
74 public AggregationState unwrap() {
75 return this.aggregationStateProvider.get();
76 }
77
78
79
80 @Override
81 public String getCurrentURI() {
82 return EscapeUtil.escapeXss(aggregationStateProvider.get().getCurrentURI());
83 }
84
85 @Override
86 public String getOriginalURI() {
87 return EscapeUtil.escapeXss(aggregationStateProvider.get().getOriginalURI());
88 }
89
90 @Override
91 public String getOriginalURL() {
92 return EscapeUtil.escapeXss(aggregationStateProvider.get().getOriginalURL());
93 }
94
95 @Override
96 public String getQueryString() {
97 return EscapeUtil.escapeXss(aggregationStateProvider.get().getQueryString());
98 }
99
100 @Override
101 public String getCharacterEncoding() {
102 return aggregationStateProvider.get().getCharacterEncoding();
103 }
104
105 @Override
106 public String getOriginalBrowserURI() {
107 return EscapeUtil.escapeXss(aggregationStateProvider.get().getOriginalBrowserURI());
108 }
109
110 @Override
111 public String getOriginalBrowserURL() {
112 return EscapeUtil.escapeXss(aggregationStateProvider.get().getOriginalBrowserURL());
113 }
114
115 @Override
116 public String getExtension() {
117 return aggregationStateProvider.get().getExtension();
118 }
119
120 @Override
121 public String getHandle() {
122 return aggregationStateProvider.get().getHandle();
123 }
124
125 @Override
126 public String getRepository() {
127 return aggregationStateProvider.get().getRepository();
128 }
129
130 @Override
131 public String getSelector() {
132 return EscapeUtil.escapeXss(aggregationStateProvider.get().getSelector());
133 }
134
135 @Override
136 public String getTemplateName() {
137 return aggregationStateProvider.get().getTemplateName();
138 }
139
140 @Override
141 protected String stripContextPathIfExists(String uri) {
142 return aggregationStateProvider.get().stripContextPathIfExists(uri);
143 }
144
145 @Override
146 public String[] getSelectors() {
147 return Arrays.stream(aggregationStateProvider.get().getSelectors())
148 .map(s -> EscapeUtil.escapeXss(s))
149 .toArray(String[]::new);
150 }
151
152
153
154 @Override
155 public void setOriginalURI(String originalURI) {
156 aggregationStateProvider.get().setOriginalURI(originalURI);
157 }
158
159 @Override
160 public void setOriginalBrowserURI(String originalBrowserURI) {
161 aggregationStateProvider.get().setOriginalBrowserURI(originalBrowserURI);
162 }
163
164 @Override
165 public void setCurrentURI(String currentURI) {
166 aggregationStateProvider.get().setCurrentURI(currentURI);
167 }
168
169 @Override
170 public void setQueryString(String queryString) {
171 aggregationStateProvider.get().setQueryString(queryString);
172 }
173
174 @Override
175 public void setOriginalURL(String originalURL) {
176 aggregationStateProvider.get().setOriginalURL(originalURL);
177 }
178
179 @Override
180 public void setOriginalBrowserURL(String originalBrowserURL) {
181 aggregationStateProvider.get().setOriginalBrowserURL(originalBrowserURL);
182 }
183
184 @Override
185 public void setCharacterEncoding(String characterEncoding) {
186 aggregationStateProvider.get().setCharacterEncoding(characterEncoding);
187 }
188
189 @Override
190 public void setExtension(String extension) {
191 aggregationStateProvider.get().setExtension(extension);
192 }
193
194 @Override
195 public void setFile(File file) {
196 aggregationStateProvider.get().setFile(file);
197 }
198
199 @Override
200 public void setHandle(String handle) {
201 aggregationStateProvider.get().setHandle(handle);
202 }
203
204 @Override
205 public void setMainContentNode(final Node mainContentNode) {
206 aggregationStateProvider.get().setMainContentNode(mainContentNode);
207 }
208
209 @Override
210 public void setRepository(String repository) {
211 aggregationStateProvider.get().setRepository(repository);
212 }
213
214 @Override
215 public void setSelector(String selector) {
216 aggregationStateProvider.get().setSelector(selector);
217 }
218
219 @Override
220 public void setTemplateName(String templateName) {
221 aggregationStateProvider.get().setTemplateName(templateName);
222 }
223
224 @Override
225 public void setLocale(Locale locale) {
226 aggregationStateProvider.get().setLocale(locale);
227 }
228
229 @Override
230 public void setPreviewMode(boolean previewMode) {
231 aggregationStateProvider.get().setPreviewMode(previewMode);
232 }
233
234 @Override
235 public void setChannel(Channel channel) {
236 aggregationStateProvider.get().setChannel(channel);
237 }
238
239 @Override
240 public void setCurrentContentNode(final Node currentContentNode) {
241 aggregationStateProvider.get().setCurrentContentNode(currentContentNode);
242 }
243
244
245
246 @Override
247 public File getFile() {
248 return aggregationStateProvider.get().getFile();
249 }
250
251 @Override
252 public Node getMainContentNode() {
253 return aggregationStateProvider.get().getMainContentNode();
254 }
255
256 public Node getCurrentContentNode() {
257 return aggregationStateProvider.get().getCurrentContentNode();
258 }
259
260 @Override
261 public Locale getLocale() {
262 return aggregationStateProvider.get().getLocale();
263 }
264
265 @Override
266 public boolean isPreviewMode() {
267 return aggregationStateProvider.get().isPreviewMode();
268 }
269
270 @Override
271 public Channel getChannel() {
272 return aggregationStateProvider.get().getChannel();
273 }
274 }