From 88ff43017dbb0851efd82fce07789bcfe101c264 Mon Sep 17 00:00:00 2001 From: Scott McCrory Date: Thu, 27 Apr 2006 02:24:30 +0000 Subject: [PATCH] Added unit test for the overridden requiresAuthentication method --- ...erAuthenticationProcessingFilterTests.java | 45 ++++++++++++++++++- 1 file changed, 43 insertions(+), 2 deletions(-) diff --git a/core/src/test/java/org/acegisecurity/ui/webapp/SiteminderAuthenticationProcessingFilterTests.java b/core/src/test/java/org/acegisecurity/ui/webapp/SiteminderAuthenticationProcessingFilterTests.java index b4e68d9114..5900e3044e 100644 --- a/core/src/test/java/org/acegisecurity/ui/webapp/SiteminderAuthenticationProcessingFilterTests.java +++ b/core/src/test/java/org/acegisecurity/ui/webapp/SiteminderAuthenticationProcessingFilterTests.java @@ -1,11 +1,12 @@ package org.acegisecurity.ui.webapp; import junit.framework.TestCase; + import org.acegisecurity.Authentication; import org.acegisecurity.MockAuthenticationManager; import org.acegisecurity.ui.WebAuthenticationDetails; - import org.springframework.mock.web.MockHttpServletRequest; +import org.springframework.mock.web.MockHttpServletResponse; /** * Tests SiteminderAuthenticationProcessingFilter. @@ -140,6 +141,46 @@ public class SiteminderAuthenticationProcessingFilterTests extends TestCase { } + /** + * Tests the overridden testRequiresAuthentication method. + * + * @throws Exception + */ + public void testRequiresAuthentication() throws Exception { + + // Create a Siteminder-style request from an unauthenticated user for a strange URI + MockHttpServletRequest request = new MockHttpServletRequest(); + MockHttpServletResponse response = new MockHttpServletResponse(); + + request.addHeader("SM_USER", "A123456"); + + // Create the Siteminder filter, set a mock authentication manager to automatically grant access + SiteminderAuthenticationProcessingFilter filter = new SiteminderAuthenticationProcessingFilter(); + filter.setDefaultTargetUrl("/defaultTargetUri"); + MockAuthenticationManager authMgrThatGrantsAccess = new MockAuthenticationManager(true); + filter.setAuthenticationManager(authMgrThatGrantsAccess); + + filter.setSiteminderUsernameHeaderKey("SM_USER"); + filter.setSiteminderPasswordHeaderKey("SM_USER"); + filter.init(null); + + // Requests for an unknown URL should NOT require (re)authentication + request.setRequestURI("http://an.unknown.url"); + boolean requiresAuthentication = filter.requiresAuthentication(request, response); + assertFalse(requiresAuthentication); + + // Requests for the filter processing URI SHOULD require (re)authentication + request.setRequestURI(request.getContextPath() + filter.getFilterProcessesUrl()); + requiresAuthentication = filter.requiresAuthentication(request, response); + assertTrue(requiresAuthentication); + + // Requests for the default target URI SHOULD require (re)authentication + request.setRequestURI(request.getContextPath() + filter.getDefaultTargetUrl()); + requiresAuthentication = filter.requiresAuthentication(request, response); + assertTrue(requiresAuthentication); + + } + /** * Tests form null username handling. * @@ -172,7 +213,7 @@ public class SiteminderAuthenticationProcessingFilterTests extends TestCase { public void testSiteminderNormalOperation() throws Exception { MockHttpServletRequest request = new MockHttpServletRequest(); - request.addHeader("SM_USER", "E099544"); + request.addHeader("SM_USER", "A123456"); MockAuthenticationManager authMgr = new MockAuthenticationManager(true);