java - 将 Spring 注解与 XML 配置混合用于 Spring Web Security

标签 java xml spring spring-security annotations

长话短说
有没有办法将 Spring Web Security 配置与注释和 xml 混合使用?

全文
对于我们遗留的 spring web 应用程序,我们正在研究使用注释驱动的配置来实现我们的部分 web 安全。

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

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

如果我们删除对基于 xml 的配置的引用,我们的注释配置将被调用。

如有任何友好的建议或建议,我们将不胜感激。

最佳答案

混合 Spring Web Security XML 和注解配置意味着相同 bean 实例,即 security:http通过 XML 和 JavaConfig 配置。它将配置一些使用 XML 的拦截 URL 模式和一些使用 JavaConfig 的其他 Ant 匹配器。但请注意拦截网址 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 Annotations 与 XML Configuration 混合使用,并且建议将遗留的 XML 配置迁移到 JavaConfig。

关于java - 将 Spring 注解与 XML 配置混合用于 Spring Web Security,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52765563/

相关文章:

android - TextView 位于 RelativeLayout 中的按钮后面

java - 使用 Angular 和 Spring 进行 Jwt 身份验证

JAVA BCEL NEWARRAY getType 基本类型

java - Android 中来自 URL 的 Xml 值

java:停止单例线程

java - XML 解析错误 (SOAP) : Illegal character

java - SpringFox 依赖破坏了我的 Spring 上下文

java - 如何在 mvcmock 单元测试中注入(inject)身份验证

java - 无法访问模态窗口,操作不起作用

Java Web Start (JNLP) 加载消息