@ -1,11 +1,12 @@
@@ -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 {
@@ -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 {
@@ -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 ) ;