我正在配置一个使用spring-security的Web应用程序。我正在使用xml命名空间用“”元素配置安全性,如下所示:http://static.springsource.org/spring-security/site/docs/2.0.x/reference/ns-config.html
如文档所述,namespace标签创建了一个“springSecurityFilterChain”bean,我可以使用web.xml中的“filter-mapping”映射到我需要保护的URL
filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy
</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
现在,我有两个webapps,我不知何故需要'合并'到一个普通的;每个应用程序都有一个安全配置,我想避免创建第三个安全配置。我想要做的是拥有由spring配置的两个安全过滤器链,具有不同的bean nams,所以我可以这样做:
<filter>
<filter-name>springSecurityFilterChain1</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy
</filter-class>
</filter>
filter>
<filter-name>springSecurityFilterChain2</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy
</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain1</filter-name>
<url-pattern>/foo/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>springSecurityFilterChain2</filter-name>
<url-pattern>/bar/*</url-pattern>
</filter-mapping>
这有意义吗?
问题是,标记似乎没有提供一种方法来自定义创建的bean的名称。有没有我错过了?或者我是否必须以某种方式复制标签对名称为我想要的FilterChain bean的作用?
欢迎任何想法。
答案 0 :(得分:1)
在Spring Security 3.1中,您可以执行此操作,而不是使用单独的过滤器,但在命名空间配置中使用单独的<http>
元素。
来自Spring Security 3.1 Reference:
从Spring Security 3.1开始,现在可以使用多个http 用于定义单独的安全过滤器链配置的元素 不同的请求模式。