mirror of
				https://github.com/spring-projects/spring-security.git
				synced 2025-10-31 06:38:42 +00:00 
			
		
		
		
	Update to use contextConfigLocation.
This commit is contained in:
		
							parent
							
								
									6c26e79a0f
								
							
						
					
					
						commit
						7eefbd3bb2
					
				| @ -76,7 +76,7 @@ import javax.servlet.http.HttpServletResponse; | |||||||
|  * WebApplicationContextUtils#getWebApplicationContext(ServletContext sc)} |  * WebApplicationContextUtils#getWebApplicationContext(ServletContext sc)} | ||||||
|  * method to obtain an ApplicationContext instance, inside which must be a |  * method to obtain an ApplicationContext instance, inside which must be a | ||||||
|  * configured AuthenticationManager instance. In the case where it is |  * configured AuthenticationManager instance. In the case where it is | ||||||
|  * desireable for  this filter to instantiate its own ApplicationContext |  * desirable for  this filter to instantiate its own ApplicationContext | ||||||
|  * instance from which to obtain the AuthenticationManager, the location of |  * instance from which to obtain the AuthenticationManager, the location of | ||||||
|  * the config for this context may be specified with the optional |  * the config for this context may be specified with the optional | ||||||
|  * <code>appContextLocation</code> init param. |  * <code>appContextLocation</code> init param. | ||||||
| @ -105,7 +105,7 @@ import javax.servlet.http.HttpServletResponse; | |||||||
|  * <code>/j_acegi_security_check</code>. |  * <code>/j_acegi_security_check</code>. | ||||||
|  * </li> |  * </li> | ||||||
|  * <li> |  * <li> | ||||||
|  * <code>appContextLocation</code> (optional, normally not used), indicates the |  * <code>contextConfigLocation</code> (optional, normally not used), indicates the | ||||||
|  * path to an application context that contains an {@link |  * path to an application context that contains an {@link | ||||||
|  * AuthenticationManager} which should be used to process each authentication |  * AuthenticationManager} which should be used to process each authentication | ||||||
|  * request. If not specified, {@link |  * request. If not specified, {@link | ||||||
| @ -116,7 +116,7 @@ import javax.servlet.http.HttpServletResponse; | |||||||
|  *  |  *  | ||||||
|  * |  * | ||||||
|  * @author Ben Alex |  * @author Ben Alex | ||||||
|  * @author colin sampaleanu |  * @author Colin Sampaleanu | ||||||
|  * @version $Id$ |  * @version $Id$ | ||||||
|  */ |  */ | ||||||
| public class AuthenticationProcessingFilter implements Filter { | public class AuthenticationProcessingFilter implements Filter { | ||||||
| @ -126,7 +126,7 @@ public class AuthenticationProcessingFilter implements Filter { | |||||||
|      * Name of (optional) servlet filter parameter that can specify the config |      * Name of (optional) servlet filter parameter that can specify the config | ||||||
|      * location for a new ApplicationContext used to config this filter. |      * location for a new ApplicationContext used to config this filter. | ||||||
|      */ |      */ | ||||||
|     public static final String CONFIG_LOCATION_PARAM = "appContextLocation"; |     public static final String CONFIG_LOCATION_PARAM = "contextConfigLocation"; | ||||||
|     public static final String ACEGI_SECURITY_TARGET_URL_KEY = "ACEGI_SECURITY_TARGET_URL"; |     public static final String ACEGI_SECURITY_TARGET_URL_KEY = "ACEGI_SECURITY_TARGET_URL"; | ||||||
|     public static final String ACEGI_SECURITY_FORM_USERNAME_KEY = "j_username"; |     public static final String ACEGI_SECURITY_FORM_USERNAME_KEY = "j_username"; | ||||||
|     public static final String ACEGI_SECURITY_FORM_PASSWORD_KEY = "j_password"; |     public static final String ACEGI_SECURITY_FORM_PASSWORD_KEY = "j_password"; | ||||||
|  | |||||||
| @ -132,11 +132,11 @@ public class SecurityEnforcementFilterTests extends TestCase { | |||||||
|             request.getSession().getAttribute(AuthenticationProcessingFilter.ACEGI_SECURITY_TARGET_URL_KEY)); |             request.getSession().getAttribute(AuthenticationProcessingFilter.ACEGI_SECURITY_TARGET_URL_KEY)); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     public void testStartupDetectsInvalidAppContextLocation() |     public void testStartupDetectsInvalidcontextConfigLocation() | ||||||
|         throws Exception { |         throws Exception { | ||||||
|         MockFilterConfig config = new MockFilterConfig(); |         MockFilterConfig config = new MockFilterConfig(); | ||||||
|         config.setInitParmeter("loginFormUrl", "/login.jsp"); |         config.setInitParmeter("loginFormUrl", "/login.jsp"); | ||||||
|         config.setInitParmeter("appContextLocation", |         config.setInitParmeter("contextConfigLocation", | ||||||
|             "net/sf/acegisecurity/intercept/web/securityfiltertest-invalid.xml"); |             "net/sf/acegisecurity/intercept/web/securityfiltertest-invalid.xml"); | ||||||
| 
 | 
 | ||||||
|         SecurityEnforcementFilter filter = new SecurityEnforcementFilter(); |         SecurityEnforcementFilter filter = new SecurityEnforcementFilter(); | ||||||
| @ -163,7 +163,7 @@ public class SecurityEnforcementFilterTests extends TestCase { | |||||||
|             assertTrue(expected.getMessage().startsWith("Error obtaining/creating ApplicationContext for config.")); |             assertTrue(expected.getMessage().startsWith("Error obtaining/creating ApplicationContext for config.")); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         config.setInitParmeter("appContextLocation", ""); |         config.setInitParmeter("contextConfigLocation", ""); | ||||||
| 
 | 
 | ||||||
|         try { |         try { | ||||||
|             filter.init(config); |             filter.init(config); | ||||||
| @ -173,11 +173,11 @@ public class SecurityEnforcementFilterTests extends TestCase { | |||||||
|         } |         } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     public void testStartupDetectsMissingInvalidAppContextLocation() |     public void testStartupDetectsMissingInvalidcontextConfigLocation() | ||||||
|         throws Exception { |         throws Exception { | ||||||
|         MockFilterConfig config = new MockFilterConfig(); |         MockFilterConfig config = new MockFilterConfig(); | ||||||
|         config.setInitParmeter("loginFormUrl", "/login.jsp"); |         config.setInitParmeter("loginFormUrl", "/login.jsp"); | ||||||
|         config.setInitParmeter("appContextLocation", "DOES_NOT_EXIST"); |         config.setInitParmeter("contextConfigLocation", "DOES_NOT_EXIST"); | ||||||
| 
 | 
 | ||||||
|         SecurityEnforcementFilter filter = new SecurityEnforcementFilter(); |         SecurityEnforcementFilter filter = new SecurityEnforcementFilter(); | ||||||
| 
 | 
 | ||||||
| @ -192,7 +192,7 @@ public class SecurityEnforcementFilterTests extends TestCase { | |||||||
|     public void testStartupDetectsMissingLoginFormUrl() |     public void testStartupDetectsMissingLoginFormUrl() | ||||||
|         throws Exception { |         throws Exception { | ||||||
|         MockFilterConfig config = new MockFilterConfig(); |         MockFilterConfig config = new MockFilterConfig(); | ||||||
|         config.setInitParmeter("appContextLocation", |         config.setInitParmeter("contextConfigLocation", | ||||||
|             "net/sf/acegisecurity/intercept/web/securityfiltertest-valid.xml"); |             "net/sf/acegisecurity/intercept/web/securityfiltertest-valid.xml"); | ||||||
| 
 | 
 | ||||||
|         SecurityEnforcementFilter filter = new SecurityEnforcementFilter(); |         SecurityEnforcementFilter filter = new SecurityEnforcementFilter(); | ||||||
| @ -237,7 +237,7 @@ public class SecurityEnforcementFilterTests extends TestCase { | |||||||
|     public void testSuccessfulStartupAndShutdownDown() |     public void testSuccessfulStartupAndShutdownDown() | ||||||
|         throws Exception { |         throws Exception { | ||||||
|         MockFilterConfig config = new MockFilterConfig(); |         MockFilterConfig config = new MockFilterConfig(); | ||||||
|         config.setInitParmeter("appContextLocation", |         config.setInitParmeter("contextConfigLocation", | ||||||
|             "net/sf/acegisecurity/intercept/web/securityfiltertest-valid.xml"); |             "net/sf/acegisecurity/intercept/web/securityfiltertest-valid.xml"); | ||||||
|         config.setInitParmeter("loginFormUrl", "/login.jsp"); |         config.setInitParmeter("loginFormUrl", "/login.jsp"); | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -102,7 +102,7 @@ public class AuthenticationProcessingFilterTests extends TestCase { | |||||||
| 
 | 
 | ||||||
|         // Setup our filter configuration |         // Setup our filter configuration | ||||||
|         MockFilterConfig config = new MockFilterConfig(); |         MockFilterConfig config = new MockFilterConfig(); | ||||||
|         config.setInitParmeter("appContextLocation", |         config.setInitParmeter("contextConfigLocation", | ||||||
|             "net/sf/acegisecurity/ui/webapp/filtertest-valid.xml"); |             "net/sf/acegisecurity/ui/webapp/filtertest-valid.xml"); | ||||||
|         config.setInitParmeter("defaultTargetUrl", "/"); |         config.setInitParmeter("defaultTargetUrl", "/"); | ||||||
|         config.setInitParmeter("authenticationFailureUrl", "/failed.jsp"); |         config.setInitParmeter("authenticationFailureUrl", "/failed.jsp"); | ||||||
| @ -133,7 +133,7 @@ public class AuthenticationProcessingFilterTests extends TestCase { | |||||||
| 
 | 
 | ||||||
|         // Setup our filter configuration |         // Setup our filter configuration | ||||||
|         MockFilterConfig config = new MockFilterConfig(); |         MockFilterConfig config = new MockFilterConfig(); | ||||||
|         config.setInitParmeter("appContextLocation", |         config.setInitParmeter("contextConfigLocation", | ||||||
|             "net/sf/acegisecurity/ui/webapp/filtertest-valid.xml"); |             "net/sf/acegisecurity/ui/webapp/filtertest-valid.xml"); | ||||||
|         config.setInitParmeter("defaultTargetUrl", "/"); |         config.setInitParmeter("defaultTargetUrl", "/"); | ||||||
|         config.setInitParmeter("authenticationFailureUrl", "/failed.jsp"); |         config.setInitParmeter("authenticationFailureUrl", "/failed.jsp"); | ||||||
| @ -163,7 +163,7 @@ public class AuthenticationProcessingFilterTests extends TestCase { | |||||||
| 
 | 
 | ||||||
|         // Setup our filter configuration |         // Setup our filter configuration | ||||||
|         MockFilterConfig config = new MockFilterConfig(); |         MockFilterConfig config = new MockFilterConfig(); | ||||||
|         config.setInitParmeter("appContextLocation", |         config.setInitParmeter("contextConfigLocation", | ||||||
|             "net/sf/acegisecurity/ui/webapp/filtertest-valid.xml"); |             "net/sf/acegisecurity/ui/webapp/filtertest-valid.xml"); | ||||||
|         config.setInitParmeter("defaultTargetUrl", "/"); |         config.setInitParmeter("defaultTargetUrl", "/"); | ||||||
|         config.setInitParmeter("authenticationFailureUrl", "/failed.jsp"); |         config.setInitParmeter("authenticationFailureUrl", "/failed.jsp"); | ||||||
| @ -190,7 +190,7 @@ public class AuthenticationProcessingFilterTests extends TestCase { | |||||||
| 
 | 
 | ||||||
|         // Setup our filter configuration |         // Setup our filter configuration | ||||||
|         MockFilterConfig config = new MockFilterConfig(); |         MockFilterConfig config = new MockFilterConfig(); | ||||||
|         config.setInitParmeter("appContextLocation", |         config.setInitParmeter("contextConfigLocation", | ||||||
|             "net/sf/acegisecurity/ui/webapp/filtertest-valid.xml"); |             "net/sf/acegisecurity/ui/webapp/filtertest-valid.xml"); | ||||||
|         config.setInitParmeter("defaultTargetUrl", "/"); |         config.setInitParmeter("defaultTargetUrl", "/"); | ||||||
|         config.setInitParmeter("authenticationFailureUrl", "/failed.jsp"); |         config.setInitParmeter("authenticationFailureUrl", "/failed.jsp"); | ||||||
| @ -222,7 +222,7 @@ public class AuthenticationProcessingFilterTests extends TestCase { | |||||||
| 
 | 
 | ||||||
|         // Setup our filter configuration |         // Setup our filter configuration | ||||||
|         MockFilterConfig config = new MockFilterConfig(); |         MockFilterConfig config = new MockFilterConfig(); | ||||||
|         config.setInitParmeter("appContextLocation", |         config.setInitParmeter("contextConfigLocation", | ||||||
|             "net/sf/acegisecurity/ui/webapp/filtertest-valid.xml"); |             "net/sf/acegisecurity/ui/webapp/filtertest-valid.xml"); | ||||||
|         config.setInitParmeter("defaultTargetUrl", "/"); |         config.setInitParmeter("defaultTargetUrl", "/"); | ||||||
|         config.setInitParmeter("authenticationFailureUrl", "/failed.jsp"); |         config.setInitParmeter("authenticationFailureUrl", "/failed.jsp"); | ||||||
| @ -251,7 +251,7 @@ public class AuthenticationProcessingFilterTests extends TestCase { | |||||||
| 
 | 
 | ||||||
|         // Setup our filter configuration |         // Setup our filter configuration | ||||||
|         MockFilterConfig config = new MockFilterConfig(); |         MockFilterConfig config = new MockFilterConfig(); | ||||||
|         config.setInitParmeter("appContextLocation", |         config.setInitParmeter("contextConfigLocation", | ||||||
|             "net/sf/acegisecurity/ui/webapp/filtertest-valid.xml"); |             "net/sf/acegisecurity/ui/webapp/filtertest-valid.xml"); | ||||||
|         config.setInitParmeter("defaultTargetUrl", "/"); |         config.setInitParmeter("defaultTargetUrl", "/"); | ||||||
|         config.setInitParmeter("authenticationFailureUrl", "/failed.jsp"); |         config.setInitParmeter("authenticationFailureUrl", "/failed.jsp"); | ||||||
| @ -268,12 +268,12 @@ public class AuthenticationProcessingFilterTests extends TestCase { | |||||||
|         assertTrue(request.getSession().getAttribute(HttpSessionIntegrationFilter.ACEGI_SECURITY_AUTHENTICATION_KEY) == null); |         assertTrue(request.getSession().getAttribute(HttpSessionIntegrationFilter.ACEGI_SECURITY_AUTHENTICATION_KEY) == null); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     public void testStartupDetectsInvalidAppContextLocation() |     public void testStartupDetectsInvalidcontextConfigLocation() | ||||||
|         throws Exception { |         throws Exception { | ||||||
|         MockFilterConfig config = new MockFilterConfig(); |         MockFilterConfig config = new MockFilterConfig(); | ||||||
|         config.setInitParmeter("defaultTargetUrl", "/"); |         config.setInitParmeter("defaultTargetUrl", "/"); | ||||||
|         config.setInitParmeter("authenticationFailureUrl", "/failed.jsp"); |         config.setInitParmeter("authenticationFailureUrl", "/failed.jsp"); | ||||||
|         config.setInitParmeter("appContextLocation", |         config.setInitParmeter("contextConfigLocation", | ||||||
|             "net/sf/acegisecurity/ui/webapp/filtertest-invalid.xml"); |             "net/sf/acegisecurity/ui/webapp/filtertest-invalid.xml"); | ||||||
| 
 | 
 | ||||||
|         AuthenticationProcessingFilter filter = new AuthenticationProcessingFilter(); |         AuthenticationProcessingFilter filter = new AuthenticationProcessingFilter(); | ||||||
| @ -301,7 +301,7 @@ public class AuthenticationProcessingFilterTests extends TestCase { | |||||||
|             assertTrue(expected.getMessage().startsWith("Error obtaining/creating ApplicationContext for config.")); |             assertTrue(expected.getMessage().startsWith("Error obtaining/creating ApplicationContext for config.")); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         config.setInitParmeter("appContextLocation", ""); |         config.setInitParmeter("contextConfigLocation", ""); | ||||||
| 
 | 
 | ||||||
|         try { |         try { | ||||||
|             filter.init(config); |             filter.init(config); | ||||||
| @ -314,7 +314,7 @@ public class AuthenticationProcessingFilterTests extends TestCase { | |||||||
|     public void testStartupDetectsMissingAuthenticationFailureUrl() |     public void testStartupDetectsMissingAuthenticationFailureUrl() | ||||||
|         throws Exception { |         throws Exception { | ||||||
|         MockFilterConfig config = new MockFilterConfig(); |         MockFilterConfig config = new MockFilterConfig(); | ||||||
|         config.setInitParmeter("appContextLocation", |         config.setInitParmeter("contextConfigLocation", | ||||||
|             "net/sf/acegisecurity/ui/webapp/filtertest-valid.xml"); |             "net/sf/acegisecurity/ui/webapp/filtertest-valid.xml"); | ||||||
|         config.setInitParmeter("defaultTargetUrl", "/"); |         config.setInitParmeter("defaultTargetUrl", "/"); | ||||||
| 
 | 
 | ||||||
| @ -343,7 +343,7 @@ public class AuthenticationProcessingFilterTests extends TestCase { | |||||||
|         throws Exception { |         throws Exception { | ||||||
|         MockFilterConfig config = new MockFilterConfig(); |         MockFilterConfig config = new MockFilterConfig(); | ||||||
|         config.setInitParmeter("authenticationFailureUrl", "/failed.jsp"); |         config.setInitParmeter("authenticationFailureUrl", "/failed.jsp"); | ||||||
|         config.setInitParmeter("appContextLocation", |         config.setInitParmeter("contextConfigLocation", | ||||||
|             "net/sf/acegisecurity/ui/webapp/filtertest-valid.xml"); |             "net/sf/acegisecurity/ui/webapp/filtertest-valid.xml"); | ||||||
| 
 | 
 | ||||||
|         AuthenticationProcessingFilter filter = new AuthenticationProcessingFilter(); |         AuthenticationProcessingFilter filter = new AuthenticationProcessingFilter(); | ||||||
| @ -367,12 +367,12 @@ public class AuthenticationProcessingFilterTests extends TestCase { | |||||||
|         } |         } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     public void testStartupDetectsMissingInvalidAppContextLocation() |     public void testStartupDetectsMissingInvalidcontextConfigLocation() | ||||||
|         throws Exception { |         throws Exception { | ||||||
|         MockFilterConfig config = new MockFilterConfig(); |         MockFilterConfig config = new MockFilterConfig(); | ||||||
|         config.setInitParmeter("defaultTargetUrl", "/"); |         config.setInitParmeter("defaultTargetUrl", "/"); | ||||||
|         config.setInitParmeter("authenticationFailureUrl", "/failed.jsp"); |         config.setInitParmeter("authenticationFailureUrl", "/failed.jsp"); | ||||||
|         config.setInitParmeter("appContextLocation", "DOES_NOT_EXIST"); |         config.setInitParmeter("contextConfigLocation", "DOES_NOT_EXIST"); | ||||||
| 
 | 
 | ||||||
|         AuthenticationProcessingFilter filter = new AuthenticationProcessingFilter(); |         AuthenticationProcessingFilter filter = new AuthenticationProcessingFilter(); | ||||||
| 
 | 
 | ||||||
| @ -397,7 +397,7 @@ public class AuthenticationProcessingFilterTests extends TestCase { | |||||||
| 
 | 
 | ||||||
|         // Setup our filter configuration |         // Setup our filter configuration | ||||||
|         MockFilterConfig config = new MockFilterConfig(); |         MockFilterConfig config = new MockFilterConfig(); | ||||||
|         config.setInitParmeter("appContextLocation", |         config.setInitParmeter("contextConfigLocation", | ||||||
|             "net/sf/acegisecurity/ui/webapp/filtertest-valid.xml"); |             "net/sf/acegisecurity/ui/webapp/filtertest-valid.xml"); | ||||||
|         config.setInitParmeter("defaultTargetUrl", "/"); |         config.setInitParmeter("defaultTargetUrl", "/"); | ||||||
|         config.setInitParmeter("authenticationFailureUrl", "/failed.jsp"); |         config.setInitParmeter("authenticationFailureUrl", "/failed.jsp"); | ||||||
| @ -442,7 +442,7 @@ public class AuthenticationProcessingFilterTests extends TestCase { | |||||||
| 
 | 
 | ||||||
|         // Setup our filter configuration |         // Setup our filter configuration | ||||||
|         MockFilterConfig config = new MockFilterConfig(); |         MockFilterConfig config = new MockFilterConfig(); | ||||||
|         config.setInitParmeter("appContextLocation", |         config.setInitParmeter("contextConfigLocation", | ||||||
|             "net/sf/acegisecurity/ui/webapp/filtertest-valid.xml"); |             "net/sf/acegisecurity/ui/webapp/filtertest-valid.xml"); | ||||||
|         config.setInitParmeter("defaultTargetUrl", "/"); |         config.setInitParmeter("defaultTargetUrl", "/"); | ||||||
|         config.setInitParmeter("authenticationFailureUrl", "/failed.jsp"); |         config.setInitParmeter("authenticationFailureUrl", "/failed.jsp"); | ||||||
|  | |||||||
| @ -7,7 +7,7 @@ | |||||||
| 
 | 
 | ||||||
|     <subtitle>Reference Documentation</subtitle> |     <subtitle>Reference Documentation</subtitle> | ||||||
| 
 | 
 | ||||||
|     <releaseinfo>0.4</releaseinfo> |     <releaseinfo>0.5</releaseinfo> | ||||||
| 
 | 
 | ||||||
|     <authorgroup> |     <authorgroup> | ||||||
|       <author> |       <author> | ||||||
| @ -368,7 +368,7 @@ | |||||||
|         <para>Whilst this may seem quite involved, don't worry. Developers |         <para>Whilst this may seem quite involved, don't worry. Developers | ||||||
|         interact with the security process by simply implementing basic |         interact with the security process by simply implementing basic | ||||||
|         interfaces (such as <literal>AccessDecisionManager</literal>), which |         interfaces (such as <literal>AccessDecisionManager</literal>), which | ||||||
|         are fully documented below. </para> |         are fully documented below.</para> | ||||||
| 
 | 
 | ||||||
|         <para>The <literal>AbstractSecurityInterceptor</literal> handles the |         <para>The <literal>AbstractSecurityInterceptor</literal> handles the | ||||||
|         majority of the flow listed above. Each secure object has its own |         majority of the flow listed above. Each secure object has its own | ||||||
| @ -517,10 +517,6 @@ | |||||||
|         provided below: <programlisting><filter> |         provided below: <programlisting><filter> | ||||||
|   <filter-name>Acegi HTTP Request Security Filter</filter-name> |   <filter-name>Acegi HTTP Request Security Filter</filter-name> | ||||||
|   <filter-class>net.sf.acegisecurity.intercept.web.SecurityEnforcementFilter</filter-class> |   <filter-class>net.sf.acegisecurity.intercept.web.SecurityEnforcementFilter</filter-class> | ||||||
|   <init-param> |  | ||||||
|     <param-name>appContextLocation</param-name> |  | ||||||
|     <param-value>web-filters-acegisecurity.xml</param-value> |  | ||||||
|   </init-param> |  | ||||||
|   <init-param> |   <init-param> | ||||||
|     <param-name>loginFormUrl</param-name> |     <param-name>loginFormUrl</param-name> | ||||||
|     <param-value>/acegilogin.jsp</param-value> |     <param-value>/acegilogin.jsp</param-value> | ||||||
| @ -532,22 +528,31 @@ | |||||||
|   <url-pattern>/*</url-pattern> |   <url-pattern>/*</url-pattern> | ||||||
| </filter-mapping></programlisting></para> | </filter-mapping></programlisting></para> | ||||||
| 
 | 
 | ||||||
|         <para>As shown above, an <literal>appContextLocation</literal> |         <para>The <literal>loginFormUrl</literal> is where the filter will | ||||||
|         indicates the location of a Spring XML application context. In the |         redirect the user's browser if they request a secure HTTP resource but | ||||||
|         example above, this file should be placed at the root of the web |         they are not authenticated. If the user is authenticated, a "403 | ||||||
|         application's classpath (in the <literal>WEB-INF/classes</literal> |         Forbidden" response will be returned to the browser. All paths are | ||||||
|         directory). The <literal>loginFormUrl</literal> is where the filter |         relative to the web application root.</para> | ||||||
|         will redirect the user's browser if they request a secure HTTP |  | ||||||
|         resource but they are not authenticated. If the user is authenticated, |  | ||||||
|         a "403 Forbidden" response will be returned to the browser. All paths |  | ||||||
|         are relative to the web application root.</para> |  | ||||||
| 
 | 
 | ||||||
|         <para>The <literal>SecurityEnforcementFilter</literal> will load the |         <para>To perform its function, the | ||||||
|         Spring XML application context expressed in the |         <literal>SecurityEnforcementFilter</literal> will need to delegate to | ||||||
|         <literal>appContextLocation</literal>. It will expect to find in this |         a properly configured <literal>FilterSecurityInterceptor</literal>. To | ||||||
|         application context a properly configured |         do this it requires access to a Spring application context, which is | ||||||
|         <literal>FilterSecurityInterceptor</literal>. The configuration of the |         usually obtained from | ||||||
|         <literal>FilterSecurityInterceptor</literal> is very similar to the |         <literal>WebApplicationContextUtils.getWebApplicationContext(ServletContext)</literal>. | ||||||
|  |         This is usually made available by using Spring's | ||||||
|  |         <literal>ContextLoaderListener</literal> in | ||||||
|  |         <literal>web.xml</literal>. Alternatively, the | ||||||
|  |         <literal>web.xml</literal> can be used to define a filter | ||||||
|  |         <literal><init-param></literal> named | ||||||
|  |         <literal>contextConfigLocation</literal>. This initialization | ||||||
|  |         parameter will represent a path to a Spring XML application context | ||||||
|  |         that the <literal>SecurityEnforcementFilter</literal> will load during | ||||||
|  |         startup.</para> | ||||||
|  | 
 | ||||||
|  |         <para>The configuration of the | ||||||
|  |         <literal>FilterSecurityInterceptor</literal> in the Spring application | ||||||
|  |         context is very similar to the | ||||||
|         <literal>MethodSecurityInterceptor</literal>:</para> |         <literal>MethodSecurityInterceptor</literal>:</para> | ||||||
| 
 | 
 | ||||||
|         <para><programlisting><bean id="filterInvocationInterceptor" class="net.sf.acegisecurity.intercept.web.FilterSecurityInterceptor"> |         <para><programlisting><bean id="filterInvocationInterceptor" class="net.sf.acegisecurity.intercept.web.FilterSecurityInterceptor"> | ||||||
| @ -1470,10 +1475,6 @@ public boolean supports(Class clazz);</programlisting></para> | |||||||
|         <para><programlisting><filter> |         <para><programlisting><filter> | ||||||
|   <filter-name>Acegi Authentication Processing Filter</filter-name> |   <filter-name>Acegi Authentication Processing Filter</filter-name> | ||||||
|   <filter-class>net.sf.acegisecurity.ui.webapp.AuthenticationProcessingFilter</filter-class> |   <filter-class>net.sf.acegisecurity.ui.webapp.AuthenticationProcessingFilter</filter-class> | ||||||
|   <init-param> |  | ||||||
|     <param-name>appContextLocation</param-name> |  | ||||||
|     <param-value>web-filters-acegisecurity.xml</param-value> |  | ||||||
|   </init-param> |  | ||||||
|   <init-param> |   <init-param> | ||||||
|     <param-name>authenticationFailureUrl</param-name> |     <param-name>authenticationFailureUrl</param-name> | ||||||
|     <param-value>/acegilogin.jsp?login_error=1</param-value> |     <param-value>/acegilogin.jsp?login_error=1</param-value> | ||||||
| @ -1493,14 +1494,23 @@ public boolean supports(Class clazz);</programlisting></para> | |||||||
|   <url-pattern>/*</url-pattern> |   <url-pattern>/*</url-pattern> | ||||||
| </filter-mapping></programlisting></para> | </filter-mapping></programlisting></para> | ||||||
| 
 | 
 | ||||||
|         <para>The <literal>appContextLocation</literal> specifies the location |         <para>To perform its function, the | ||||||
|         of a Spring XML application context. In the example above the root of |         <literal>AuthenticationProcessingFilter</literal> will need to | ||||||
|         the classpath is used, so the XML file should be placed in |         delegate to a properly configured | ||||||
|         <literal>WEB-INF/classes</literal>. The |         <literal>AuthenticationManager</literal>. To do this it requires | ||||||
|         <literal>AuthenticationProcessingFilter</literal> will load this |         access to a Spring application context, which is usually obtained from | ||||||
|         application context, expecting to find a properly configured |         <literal>WebApplicationContextUtils.getWebApplicationContext(ServletContext)</literal>. | ||||||
|         <literal>AuthenticationManager</literal>. It will use this |         This is usually made available by using Spring's | ||||||
|         <literal>AuthenticationManager</literal> to process each |         <literal>ContextLoaderListener</literal> in | ||||||
|  |         <literal>web.xml</literal>. Alternatively, the | ||||||
|  |         <literal>web.xml</literal> can be used to define a filter | ||||||
|  |         <literal><init-param></literal> named | ||||||
|  |         <literal>contextConfigLocation</literal>. This initialization | ||||||
|  |         parameter will represent a path to a Spring XML application context | ||||||
|  |         that the <literal>AuthenticationProcessingFilter</literal> will load | ||||||
|  |         during startup.</para> | ||||||
|  | 
 | ||||||
|  |         <para>The <literal>AuthenticationManager</literal> processes each | ||||||
|         authentication request. If authentication fails, the browser will be |         authentication request. If authentication fails, the browser will be | ||||||
|         redirected to the <literal>authenticationFailureUrl</literal>. The |         redirected to the <literal>authenticationFailureUrl</literal>. The | ||||||
|         <literal>AuthenticationException</literal> will be placed into the |         <literal>AuthenticationException</literal> will be placed into the | ||||||
| @ -1515,9 +1525,10 @@ public boolean supports(Class clazz);</programlisting></para> | |||||||
|         This becomes the "well-known location" from which the |         This becomes the "well-known location" from which the | ||||||
|         <literal>Authentication</literal> object is later extracted.</para> |         <literal>Authentication</literal> object is later extracted.</para> | ||||||
| 
 | 
 | ||||||
|         <para>Once the HttpSession has been updated, the browser will need to |         <para>Once the <literal>HttpSession</literal> has been updated, the | ||||||
|         be redirected to the target URL. The target URL is usually indicated |         browser will need to be redirected to the target URL. The target URL | ||||||
|         by the <literal>HttpSession</literal> attribute specified by |         is usually indicated by the <literal>HttpSession</literal> attribute | ||||||
|  |         specified by | ||||||
|         <literal>AuthenticationProcessingFilter.ACEGI_SECURITY_TARGET_URL_KEY</literal>. |         <literal>AuthenticationProcessingFilter.ACEGI_SECURITY_TARGET_URL_KEY</literal>. | ||||||
|         This attribute is automatically set by the |         This attribute is automatically set by the | ||||||
|         <literal>SecurityEnforcementFilter</literal> when an |         <literal>SecurityEnforcementFilter</literal> when an | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user