我有两种不同的spring安全配置,一种用于本地开发,另一种用于测试和生产服务器。它们完全不同,但需要共享“拦截 - 网址”部分。 这个要么:
<security:http ... >
<security:http-basic />
<security:anonymous />
<security:intercept-url ... />
<security:intercept-url ... />
...
</security:http>
我需要在两个不同的http标签之间共享intercept-url标签列表。 有没有办法做到这一点?
答案 0 :(得分:1)
这不是你可以轻易用名称空间做的事情。
如果您只是定义访问限制,则可能有一种可能性是定义外部filter-security-metadata-source
并编写BeanPostProcessor
以将其注入FilterSecurityInterceptor
。
但是,这样的事情可能不值得。
另一种选择是将要用作bean的身份验证过滤器外部化(使用custom-filter
元素将它们添加到<http>
配置中),并根据您的环境单独配置它们。如果您可以明确地发布两个配置以查看有多少重叠,那么建议可行性会更容易。