diff --git a/core/src/main/java/org/acegisecurity/ui/AbstractProcessingFilter.java b/core/src/main/java/org/acegisecurity/ui/AbstractProcessingFilter.java index ac4da26cb3..39ac2cb52e 100644 --- a/core/src/main/java/org/acegisecurity/ui/AbstractProcessingFilter.java +++ b/core/src/main/java/org/acegisecurity/ui/AbstractProcessingFilter.java @@ -204,7 +204,8 @@ public abstract class AbstractProcessingFilter implements Filter, HttpServletRequest httpRequest = (HttpServletRequest) request; HttpServletResponse httpResponse = (HttpServletResponse) response; - if (filterProcessesUrl.equals(httpRequest.getServletPath())) { + if (httpRequest.getRequestURL().toString().endsWith(httpRequest + .getContextPath() + filterProcessesUrl)) { if (logger.isDebugEnabled()) { logger.debug("Request is to process authentication"); } diff --git a/core/src/test/java/org/acegisecurity/ui/AbstractProcessingFilterTests.java b/core/src/test/java/org/acegisecurity/ui/AbstractProcessingFilterTests.java index 9536aaec91..e8ea5be46e 100644 --- a/core/src/test/java/org/acegisecurity/ui/AbstractProcessingFilterTests.java +++ b/core/src/test/java/org/acegisecurity/ui/AbstractProcessingFilterTests.java @@ -100,6 +100,7 @@ public class AbstractProcessingFilterTests extends TestCase { // Setup our HTTP request MockHttpServletRequest request = new MockHttpServletRequest(""); request.setServletPath("/j_mock_post"); + request.setRequestURL("http://www.example.com/mycontext/j_mock_post"); // Setup our filter configuration MockFilterConfig config = new MockFilterConfig(); @@ -124,6 +125,8 @@ public class AbstractProcessingFilterTests extends TestCase { // Setup our HTTP request MockHttpServletRequest request = new MockHttpServletRequest(""); request.setServletPath("/j_OTHER_LOCATION"); + request.setRequestURL( + "http://www.example.com/mycontext/j_OTHER_LOCATION"); // Setup our filter configuration MockFilterConfig config = new MockFilterConfig(); @@ -167,6 +170,7 @@ public class AbstractProcessingFilterTests extends TestCase { // Setup our HTTP request MockHttpServletRequest request = new MockHttpServletRequest(""); request.setServletPath("/some.file.html"); + request.setRequestURL("http://www.example.com/mycontext/some.file.html"); // Setup our filter configuration MockFilterConfig config = new MockFilterConfig(); @@ -188,6 +192,7 @@ public class AbstractProcessingFilterTests extends TestCase { // Setup our HTTP request MockHttpServletRequest request = new MockHttpServletRequest(""); request.setServletPath("/j_mock_post"); + request.setRequestURL("http://www.example.com/mycontext/j_mock_post"); // Setup our filter configuration MockFilterConfig config = new MockFilterConfig(); @@ -284,6 +289,7 @@ public class AbstractProcessingFilterTests extends TestCase { // Setup our HTTP request MockHttpServletRequest request = new MockHttpServletRequest(""); request.setServletPath("/j_mock_post"); + request.setRequestURL("http://www.example.com/mycontext/j_mock_post"); // Setup our filter configuration MockFilterConfig config = new MockFilterConfig(); @@ -328,6 +334,7 @@ public class AbstractProcessingFilterTests extends TestCase { // Setup our HTTP request MockHttpServletRequest request = new MockHttpServletRequest(""); request.setServletPath("/j_mock_post"); + request.setRequestURL("http://www.example.com/mycontext/j_mock_post"); request.getSession().setAttribute(AbstractProcessingFilter.ACEGI_SECURITY_TARGET_URL_KEY, "/my-destination");