|  | @@ -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);
 | 
	
		
			
				|  |  |  
 |