0
这发生在也使用Spring Security的Spring MVC应用程序中。我已经配置了映射“/user/save
”的要求,以便只有管理员可以访问它:POST请求获取405响应,而不是由访问拒绝处理程序处理
<intercept-url pattern="/user/save/**" access="hasAnyAuthority('ROLE_ADMIN')"/>
<intercept-url pattern="/user/**" access="hasAnyAuthority('ROLE_ADMIN','ROLE_OPERATOR'"/>
未授权的请求被
<access-denied-handler error-page="/denied"/>
处理当我做只是有ROLE_OPERATOR
/user/save
要求我得到以下警告:
WARN http-nio-8080-exec-20 servlet.PageNotFound:208 - Request method 'POST' not supported
和/denied
没有被击中。为什么?
解决类似问题的解决方案是为POST查询配置csrf,但POST查询适用于ROLE_ADMIN
,因此这里不应该是问题。
我试着在安全配置确定方法类型如下:
<intercept-url pattern="/user/save/**" access="hasAnyAuthority('ROLE_ADMIN')" method="GET"/>
<intercept-url pattern="/user/save/**" access="hasAnyAuthority('ROLE_ADMIN')" method="POST"/>
,但它并没有帮助。
访问被拒绝的处理程序在其他情况下工作正常,当请求使用不足的特权进行访问时被访问,所以不应该成为问题的一部分。
什么可能导致此行为?