3

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

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

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

4

1 回答 1

1

这不是您可以使用命名空间轻松完成的事情。

如果您只是定义访问约束,一种可能性可能是定义一个外部filter-security-metadata-source并编写一个BeanPostProcessor将其注入到FilterSecurityInterceptor.

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

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

于 2013-07-05T11:38:57.147 回答