Spring安全:在配置之间共享intercept-url

时间:2013-07-05 07:51:51

标签: spring-security

我有两种不同的spring安全配置,一种用于本地开发,另一种用于测试和生产服务器。它们完全不同,但需要共享“拦截 - 网址”部分。 这个要么:

<security:http ... >
    <security:http-basic />
    <security:anonymous />
    <security:intercept-url ... />
    <security:intercept-url ... />
    ...
</security:http>

我需要在两个不同的http标签之间共享intercept-url标签列表。 有没有办法做到这一点?

1 个答案:

答案 0 :(得分:1)

这不是你可以轻易用名称空间做的事情。

如果您只是定义访问限制,则可能有一种可能性是定义外部filter-security-metadata-source并编写BeanPostProcessor以将其注入FilterSecurityInterceptor

但是,这样的事情可能不值得。

另一种选择是将要用作bean的身份验证过滤器外部化(使用custom-filter元素将它们添加到<http>配置中),并根据您的环境单独配置它们。如果您可以明确地发布两个配置以查看有多少重叠,那么建议可行性会更容易。