将Spring Annotations与XML Config混合用于Spring Web Security

hoo*_*knc 5 java xml spring annotations spring-security

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

全文
对于我们的传统Spring Web应用程序,我们正在研究如何使用注释驱动配置来实现Web安全性的一部分.

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

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

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

任何友好的建议或建议表示赞赏.

San*_*dev 3

混合 Spring Web Security XML 和注释配置意味着同一个bean 实例,即security:http通过 XML 和 JavaConfig 进行配置。它将使用 XML 配置一些拦截 URL 模式,并使用 JavaConfig 配置一些其他 Ant 匹配器。但请注意,拦截 URL模式始终按照定义的顺序进行评估,并且匹配器也按照顺序进行考虑。因此,Spring Security 只考虑 XML 配置并忽略 JavaConfig 配置,因为如果同时考虑两者,它就不会有任何 URL 定义的顺序感。我找不到任何直接支持该理论的文档。如果您分享应用程序启动时生成的 Spring Boot 日志语句,我们可能会更好地了解 Spring Boot 正在做什么。

因此,我认为在配置 Spring Web Security 时不能将 Spring 注解与 XML 配置混合使用,并且建议将旧版 XML 配置迁移到 JavaConfig。