@@ -38,7 +38,7 @@ public class ResourceUrlEncodingFilterTests {
38
38
39
39
private ResourceUrlEncodingFilter filter ;
40
40
41
- private ResourceUrlProvider resourceUrlProvider ;
41
+ private ResourceUrlProvider urlProvider ;
42
42
43
43
@ Before
44
44
public void createFilter () throws Exception {
@@ -49,16 +49,16 @@ public void createFilter() throws Exception {
49
49
List <ResourceResolver > resolvers = Arrays .asList (versionResolver , pathResolver );
50
50
51
51
this .filter = new ResourceUrlEncodingFilter ();
52
- this .resourceUrlProvider = createResourceUrlProvider (resolvers );
52
+ this .urlProvider = createResourceUrlProvider (resolvers );
53
53
}
54
54
55
55
@ Test
56
56
public void encodeURL () throws Exception {
57
57
MockHttpServletRequest request = new MockHttpServletRequest ("GET" , "/" );
58
- request .setAttribute (ResourceUrlProviderExposingInterceptor .RESOURCE_URL_PROVIDER_ATTR , this .resourceUrlProvider );
59
58
MockHttpServletResponse response = new MockHttpServletResponse ();
60
59
61
60
this .filter .doFilter (request , response , (req , res ) -> {
61
+ req .setAttribute (ResourceUrlProviderExposingInterceptor .RESOURCE_URL_PROVIDER_ATTR , this .urlProvider );
62
62
String result = ((HttpServletResponse ) res ).encodeURL ("/resources/bar.css" );
63
63
assertEquals ("/resources/bar-11e16cf79faee7ac698c805cf28248d2.css" , result );
64
64
});
@@ -68,10 +68,26 @@ public void encodeURL() throws Exception {
68
68
public void encodeURLWithContext () throws Exception {
69
69
MockHttpServletRequest request = new MockHttpServletRequest ("GET" , "/context/foo" );
70
70
request .setContextPath ("/context" );
71
- request .setAttribute (ResourceUrlProviderExposingInterceptor .RESOURCE_URL_PROVIDER_ATTR , this .resourceUrlProvider );
72
71
MockHttpServletResponse response = new MockHttpServletResponse ();
73
72
74
73
this .filter .doFilter (request , response , (req , res ) -> {
74
+ req .setAttribute (ResourceUrlProviderExposingInterceptor .RESOURCE_URL_PROVIDER_ATTR , this .urlProvider );
75
+ String result = ((HttpServletResponse ) res ).encodeURL ("/context/resources/bar.css" );
76
+ assertEquals ("/context/resources/bar-11e16cf79faee7ac698c805cf28248d2.css" , result );
77
+ });
78
+ }
79
+
80
+
81
+ @ Test
82
+ public void encodeUrlWithContextAndForwardedRequest () throws Exception {
83
+ MockHttpServletRequest request = new MockHttpServletRequest ("GET" , "/context/foo" );
84
+ request .setContextPath ("/context" );
85
+ MockHttpServletResponse response = new MockHttpServletResponse ();
86
+
87
+ this .filter .doFilter (request , response , (req , res ) -> {
88
+ req .setAttribute (ResourceUrlProviderExposingInterceptor .RESOURCE_URL_PROVIDER_ATTR , this .urlProvider );
89
+ request .setRequestURI ("/forwarded" );
90
+ request .setContextPath ("/" );
75
91
String result = ((HttpServletResponse ) res ).encodeURL ("/context/resources/bar.css" );
76
92
assertEquals ("/context/resources/bar-11e16cf79faee7ac698c805cf28248d2.css" , result );
77
93
});
@@ -82,10 +98,10 @@ public void encodeURLWithContext() throws Exception {
82
98
public void encodeContextPathUrlWithoutSuffix () throws Exception {
83
99
MockHttpServletRequest request = new MockHttpServletRequest ("GET" , "/context" );
84
100
request .setContextPath ("/context" );
85
- request .setAttribute (ResourceUrlProviderExposingInterceptor .RESOURCE_URL_PROVIDER_ATTR , this .resourceUrlProvider );
86
101
MockHttpServletResponse response = new MockHttpServletResponse ();
87
102
88
103
this .filter .doFilter (request , response , (req , res ) -> {
104
+ req .setAttribute (ResourceUrlProviderExposingInterceptor .RESOURCE_URL_PROVIDER_ATTR , this .urlProvider );
89
105
String result = ((HttpServletResponse ) res ).encodeURL ("/context/resources/bar.css" );
90
106
assertEquals ("/context/resources/bar-11e16cf79faee7ac698c805cf28248d2.css" , result );
91
107
});
@@ -95,10 +111,10 @@ public void encodeContextPathUrlWithoutSuffix() throws Exception {
95
111
public void encodeContextPathUrlWithSuffix () throws Exception {
96
112
MockHttpServletRequest request = new MockHttpServletRequest ("GET" , "/context/" );
97
113
request .setContextPath ("/context" );
98
- request .setAttribute (ResourceUrlProviderExposingInterceptor .RESOURCE_URL_PROVIDER_ATTR , this .resourceUrlProvider );
99
114
MockHttpServletResponse response = new MockHttpServletResponse ();
100
115
101
116
this .filter .doFilter (request , response , (req , res ) -> {
117
+ req .setAttribute (ResourceUrlProviderExposingInterceptor .RESOURCE_URL_PROVIDER_ATTR , this .urlProvider );
102
118
String result = ((HttpServletResponse ) res ).encodeURL ("/context/resources/bar.css" );
103
119
assertEquals ("/context/resources/bar-11e16cf79faee7ac698c805cf28248d2.css" , result );
104
120
});
@@ -109,10 +125,10 @@ public void encodeContextPathUrlWithSuffix() throws Exception {
109
125
public void encodeEmptyURLWithContext () throws Exception {
110
126
MockHttpServletRequest request = new MockHttpServletRequest ("GET" , "/context/foo" );
111
127
request .setContextPath ("/context" );
112
- request .setAttribute (ResourceUrlProviderExposingInterceptor .RESOURCE_URL_PROVIDER_ATTR , this .resourceUrlProvider );
113
128
MockHttpServletResponse response = new MockHttpServletResponse ();
114
129
115
130
this .filter .doFilter (request , response , (req , res ) -> {
131
+ req .setAttribute (ResourceUrlProviderExposingInterceptor .RESOURCE_URL_PROVIDER_ATTR , this .urlProvider );
116
132
String result = ((HttpServletResponse ) res ).encodeURL ("?foo=1" );
117
133
assertEquals ("?foo=1" , result );
118
134
});
@@ -123,10 +139,10 @@ public void encodeEmptyURLWithContext() throws Exception {
123
139
public void encodeURLWithRequestParams () throws Exception {
124
140
MockHttpServletRequest request = new MockHttpServletRequest ("GET" , "/foo" );
125
141
request .setContextPath ("/" );
126
- request .setAttribute (ResourceUrlProviderExposingInterceptor .RESOURCE_URL_PROVIDER_ATTR , this .resourceUrlProvider );
127
142
MockHttpServletResponse response = new MockHttpServletResponse ();
128
143
129
144
this .filter .doFilter (request , response , (req , res ) -> {
145
+ req .setAttribute (ResourceUrlProviderExposingInterceptor .RESOURCE_URL_PROVIDER_ATTR , this .urlProvider );
130
146
String result = ((HttpServletResponse ) res ).encodeURL ("/resources/bar.css?foo=bar&url=http://example.org" );
131
147
assertEquals ("/resources/bar-11e16cf79faee7ac698c805cf28248d2.css?foo=bar&url=http://example.org" , result );
132
148
});
@@ -138,10 +154,10 @@ public void encodeUrlPreventStringOutOfBounds() throws Exception {
138
154
MockHttpServletRequest request = new MockHttpServletRequest ("GET" , "/context-path/index" );
139
155
request .setContextPath ("/context-path" );
140
156
request .setServletPath ("" );
141
- request .setAttribute (ResourceUrlProviderExposingInterceptor .RESOURCE_URL_PROVIDER_ATTR , this .resourceUrlProvider );
142
157
MockHttpServletResponse response = new MockHttpServletResponse ();
143
158
144
159
this .filter .doFilter (request , response , (req , res ) -> {
160
+ req .setAttribute (ResourceUrlProviderExposingInterceptor .RESOURCE_URL_PROVIDER_ATTR , this .urlProvider );
145
161
String result = ((HttpServletResponse ) res ).encodeURL ("index?key=value" );
146
162
assertEquals ("index?key=value" , result );
147
163
});
0 commit comments