【发布时间】:2015-10-29 13:05:44
【问题描述】:
我有一个名为 USER 的资源用于我的休息服务。 以下是该资源中的一些 api。
/api/users/{userId}/order/{orderId}
/api/users/{userId}/favoriteStores
我希望第一个 URL 受到保护,而第二个 URL 不需要安全性。(给出一个示例 api url)。
我如下配置了安全配置
<security:http pattern="/rest/users/**" entry-point-ref="restAuthenticationEntryPoint"
use-expressions="true" auto-config="false" create-session="stateless">
<security:custom-filter ref="authenticationTokenProcessingFilter"
position="PRE_AUTH_FILTER" />
<security:intercept-url pattern="/rest/users/{userId}/order/**"
access="hasRole('ROLE_CUSTOMER')" />
<security:logout />
</security:http>
但这也拦截了第二个 url(即 /api/users/{userId}/favoriteStores)
所以,我将配置更改为
<security:http pattern="/rest/users/{userId}/order/**" entry-point-ref="restAuthenticationEntryPoint"
use-expressions="true" auto-config="false" create-session="stateless">
<security:custom-filter ref="authenticationTokenProcessingFilter"
position="PRE_AUTH_FILTER" />
<security:intercept-url pattern="/rest/users/{userId}/order/**"
access="hasRole('ROLE_CUSTOMER')" />
<security:logout />
</security:http>
现在它显示禁止错误。
我应该如何配置安全拦截网址?
【问题讨论】:
标签: java spring authentication spring-security authorization