【问题标题】:Spring security permitAll requires Authorization headerSpring 安全 permitAll 需要 Authorization 标头
【发布时间】:2017-06-04 03:40:49
【问题描述】:

我有一个有两个 REST 端点的应用程序:

  • GET /api/products(不安全)
  • POST /api/products(安全)

对于第一个端点,我不想发送“授权”标头。为此,我配置了以下 xml:

<security:intercept-url pattern="/api/products" method="GET" access="permitAll"/>

对于第二个端点,我确实想发送“授权”标头。所以,我配置了这个xml:

<security:intercept-url pattern="/api/products" method="POST" access="hasRole('ROLE_ADMIN')"/>

令我惊讶的是,GET /api/products 需要一个“授权”标头,它返回 401。POST /api/products 效果很好。我只是发送一个带有有效值的“授权”标头,一切顺利。

我意识到使用 &lt;security:intercept-url&gt; 和 access="permitAll" 不会禁用“授权”标头的需要,对吗?如果是这样,我可以设置什么样的配置来实现我的目标?

我正在使用 Spring Security 4

【问题讨论】:

  • 您是否尝试过从配置中简单地评论&lt;security:intercept-url pattern="/api/products" method="GET" access="permitAll"/&gt;(或删除)? :)

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


【解决方案1】:

您应该简单地删除 &lt;security:intercept-url pattern="/api/products" method="GET" access="permitAll"/&gt; 并且不要为 /api/products GET 资源指定任何安全配置。

【讨论】:

    猜你喜欢
    • 2020-10-28
    • 1970-01-01
    • 1970-01-01
    • 2016-07-17
    • 2019-03-09
    • 2012-01-26
    • 1970-01-01
    • 2020-03-13
    • 1970-01-01
    相关资源
    最近更新 更多