【问题标题】:Spring security - Only CSRF, no authentication required (using XML Configuration)Spring security - 仅 CSRF,无需身份验证(使用 XML 配置)
【发布时间】:2018-06-23 08:58:49
【问题描述】:

我想使用 XML 配置(4.0 版)实现 Spring Security,我的应用程序不需要身份验证,我需要的只是 CSRF 预防。

我参考了以下

No Authentication and authorization using Spring Security 但这是 Java 配置

我的 spring-security.xml 看起来像这样

<beans:beans xmlns="http://www.springframework.org/schema/security"
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security-4.0.xsd">

<http auto-config="true">
    <intercept-url pattern="/**" access="permitAll"/>
</http>

但我不断收到此错误

Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'org.springframework.security.authenticationManager'

因为没有定义身份验证管理器。

【问题讨论】:

  • 我认为你必须制作一个指向这个的配置 bean
  • 您能详细说明一下吗?您的意思是身份验证管理器的配置 bean?那个 bean 应该是空的吗?
  • 请阅读this
  • 是的,我已经看到了,但它有什么帮助
  • auto-config="true" 添加登录表单、基本身份验证和注销 URL。鉴于您不需要这些,您应该将其从配置中删除。如果您使用的是 Spring Security 4.0 或更高版本,则默认启用 CSRF 保护,因此除了您已经拥有的(一旦您删除了auto-config),不需要对其进行特殊配置。

标签: java xml spring spring-mvc spring-security


【解决方案1】:

正如@manish 所建议的,罪魁祸首是auto-config="true"。删除它解决了这个问题。

【讨论】:

    猜你喜欢
    • 2014-03-18
    • 1970-01-01
    • 1970-01-01
    • 2014-11-25
    • 2010-11-22
    • 2017-05-10
    • 2013-07-07
    • 2021-03-28
    相关资源
    最近更新 更多