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的配置的引用,则会调用注释配置。
任何友好的建议或建议都会受到赞赏。
答案 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。