This is an automated email from the ASF dual-hosted git repository. bdemers pushed a commit to branch patch-1 in repository https://gitbox.apache.org/repos/asf/shiro.git
commit 367c3d5cc0bc18eefcc4358930b82978c877f06b Author: Brian Demers <[email protected]> AuthorDate: Tue Jul 6 16:34:03 2021 -0400 Add test for SHIRO-825 --- .../mgt/PathMatchingFilterChainResolverTest.java | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/web/src/test/java/org/apache/shiro/web/filter/mgt/PathMatchingFilterChainResolverTest.java b/web/src/test/java/org/apache/shiro/web/filter/mgt/PathMatchingFilterChainResolverTest.java index db4de61..76bff55 100644 --- a/web/src/test/java/org/apache/shiro/web/filter/mgt/PathMatchingFilterChainResolverTest.java +++ b/web/src/test/java/org/apache/shiro/web/filter/mgt/PathMatchingFilterChainResolverTest.java @@ -255,4 +255,44 @@ public class PathMatchingFilterChainResolverTest extends WebTest { FilterChain resolved = resolver.getChain(request, response, chain); assertThat(resolved, notNullValue()); } + + /** + * Test asserting <a href="https://issues.apache.org/jira/browse/SHIRO-825">SHIRO-825<a/>. + */ + @Test + public void testGetChainWhenPathEndsWithSlash() { + HttpServletRequest request = mock(HttpServletRequest.class); + HttpServletResponse response = mock(HttpServletResponse.class); + FilterChain chain = mock(FilterChain.class); + + //ensure at least one chain is defined: + resolver.getFilterChainManager().addToChain("/resource/*/book", "authcBasic"); + + when(request.getServletPath()).thenReturn(""); + when(request.getPathInfo()).thenReturn("/resource/123/book/"); + + FilterChain resolved = resolver.getChain(request, response, chain); + assertNotNull(resolved); + verify(request).getServletPath(); + } + + /** + * Test asserting <a href="https://issues.apache.org/jira/browse/SHIRO-825">SHIRO-825<a/>. + */ + @Test + public void testGetChainWhenPathDoesNotEndWithSlash() { + HttpServletRequest request = mock(HttpServletRequest.class); + HttpServletResponse response = mock(HttpServletResponse.class); + FilterChain chain = mock(FilterChain.class); + + //ensure at least one chain is defined: + resolver.getFilterChainManager().addToChain("/resource/*/book", "authcBasic"); + + when(request.getServletPath()).thenReturn(""); + when(request.getPathInfo()).thenReturn("/resource/123/book"); + + FilterChain resolved = resolver.getChain(request, response, chain); + assertNotNull(resolved); + verify(request).getServletPath(); + } }
