【发布时间】: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 效果很好。我只是发送一个带有有效值的“授权”标头,一切顺利。
我意识到使用 <security:intercept-url> 和 access="permitAll" 不会禁用“授权”标头的需要,对吗?如果是这样,我可以设置什么样的配置来实现我的目标?
我正在使用 Spring Security 4
【问题讨论】:
-
您是否尝试过从配置中简单地评论
<security:intercept-url pattern="/api/products" method="GET" access="permitAll"/>(或删除)? :)
标签: java spring security spring-mvc spring-security