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"/>
,但它並沒有幫助。
訪問被拒絕的處理程序在其他情況下工作正常,當請求使用不足的特權進行訪問時被訪問,所以不應該成爲問題的一部分。
什麼可能導致此行爲?