将Spring注释与XML Config混合以实现Spring Web Security

时间:2018-10-11 17:10:10

标签: java xml spring spring-security annotations

TL; DR
有没有办法将Spring Web Security配置与注释和xml混合使用?

全文
对于我们的旧版Spring Web应用程序,我们正在考虑将注释驱动的配置用于Web安全的一部分。

当前,我们所有的网络安全性(<security:http>)都是基于xml的配置驱动的。但是,我们正在添加一种新的登录机制(SAML 2.0),似乎通过注释进行配置比使用xml更加容易。

我们一直在尝试将注释和xml的使用混合使用,但是似乎只有一种或另一种有效。这意味着当通过xml(<import resource="classpath:web-security.xml"/>或通过@ImportResource注释引用任何基于xml的Web安全性时,基于注释的Web安全性将被忽略。

如果删除对基于xml的配置的引用,则会调用注释配置。

任何友好的建议或建议都会受到赞赏。

1 个答案:

答案 0 :(得分:2)

混合Spring Web Security XML和注释配置将意味着同时也通过XML配置 相同 bean实例security:http。作为JavaConfig。它将使用XML配置一些拦截URL模式,并使用JavaConfig配置一些其他Ant匹配器。但是请注意,拦截URL patterns are always evaluated in the order they are defined matchers are considered in order。因此,Spring Security仅考虑XML配置,而忽略了JavaConfig,因为如果同时考虑两者,则 它不会对URL定义有任何顺序 。我找不到任何直接支持该理论的文档。如果您共享在应用程序启动时生成的Spring Boot日志语句,我们可能会更好地了解Spring Boot的工作。

因此,我认为您在配置Spring Web Security时不能将Spring注释与XML配置混合使用,而是建议将旧的XML配置迁移到JavaConfig。