Spring security permitAll需要Authorization标头

时间:2017-01-19 12:27:24

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

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

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

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

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

对于第二个端点,我确实希望发送&#34;授权&#34;头。所以,我配置这个xml:

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

令我惊讶的是,GET / api /产品需要&#34;授权&#34;标题,它返回401. POST / api /产品非常好用。我只是发送一个&#34;授权&#34;带有效值的标题,一切顺利。

我意识到使用<security:intercept-url>和access =&#34; permitAll&#34;不会禁用&#34;授权&#34;标题,这是正确的吗?如果是这样,我可以设置什么样的配置来实现我的目标?

我正在使用Spring Security 4

1 个答案:

答案 0 :(得分:0)

您只需删除<security:intercept-url pattern="/api/products" method="GET" access="permitAll"/>,不要为/api/products GET资源指定任何安全配置。