|
20 | 20 |
|
21 | 21 | import org.apache.shiro.util.AntPathMatcher; |
22 | 22 | import org.apache.shiro.web.WebTest; |
23 | | -import org.apache.shiro.web.util.WebUtils; |
24 | | -import org.hamcrest.Matchers; |
25 | 23 | import org.junit.Before; |
26 | 24 | import org.junit.Test; |
27 | 25 |
|
@@ -263,4 +261,46 @@ public void testMultipleChainsPathEndsWithSlash() { |
263 | 261 | assertThat(resolved, notNullValue()); |
264 | 262 | verify(request); |
265 | 263 | } |
| 264 | + |
| 265 | + /** |
| 266 | + * Test asserting <a href="https://issues.apache.org/jira/browse/SHIRO-825">SHIRO-825<a/>. |
| 267 | + */ |
| 268 | + @Test |
| 269 | + public void testGetChainWhenPathEndsWithSlash() { |
| 270 | + HttpServletRequest request = createNiceMock(HttpServletRequest.class); |
| 271 | + HttpServletResponse response = createNiceMock(HttpServletResponse.class); |
| 272 | + FilterChain chain = createNiceMock(FilterChain.class); |
| 273 | + |
| 274 | + //ensure at least one chain is defined: |
| 275 | + resolver.getFilterChainManager().addToChain("/resource/*/book", "authcBasic"); |
| 276 | + |
| 277 | + expect(request.getServletPath()).andReturn(""); |
| 278 | + expect(request.getPathInfo()).andReturn("/resource/123/book/"); |
| 279 | + replay(request); |
| 280 | + |
| 281 | + FilterChain resolved = resolver.getChain(request, response, chain); |
| 282 | + assertNotNull(resolved); |
| 283 | + verify(request); |
| 284 | + } |
| 285 | + |
| 286 | + /** |
| 287 | + * Test asserting <a href="https://issues.apache.org/jira/browse/SHIRO-825">SHIRO-825<a/>. |
| 288 | + */ |
| 289 | + @Test |
| 290 | + public void testGetChainWhenPathDoesNotEndWithSlash() { |
| 291 | + HttpServletRequest request = createNiceMock(HttpServletRequest.class); |
| 292 | + HttpServletResponse response = createNiceMock(HttpServletResponse.class); |
| 293 | + FilterChain chain = createNiceMock(FilterChain.class); |
| 294 | + |
| 295 | + //ensure at least one chain is defined: |
| 296 | + resolver.getFilterChainManager().addToChain("/resource/*/book", "authcBasic"); |
| 297 | + |
| 298 | + expect(request.getServletPath()).andReturn(""); |
| 299 | + expect(request.getPathInfo()).andReturn("/resource/123/book"); |
| 300 | + replay(request); |
| 301 | + |
| 302 | + FilterChain resolved = resolver.getChain(request, response, chain); |
| 303 | + assertNotNull(resolved); |
| 304 | + verify(request); |
| 305 | + } |
266 | 306 | } |
0 commit comments