Tài liệu tham chiếu cho biết các url được khớp trong cùng một thứ tự như được khai báo, nhưng một khai báo cuối cùng đang được khớp trước một số được khai báo trước đó.Thứ tự bảo mật của Spring Security 3.0 là
Đây là tuyên bố của tôi:
<intercept-url pattern="/static/**" filters="none" />
<intercept-url pattern="/login.jsp*" filters="none" />
<intercept-url pattern="/logout.jsp*" filters="none" />
<intercept-url pattern="/forgotpassword*" filters="none" />
<intercept-url pattern="/WEB-INF/jsp/forgotpassword*" filters="none" />
<intercept-url pattern="**/ordersearch*" access="hasRole('ROLE_VIEW_ORDER_STATUS')" />
<intercept-url pattern="**/creditstatus*" access="hasRole('ROLE_VIEW_CREDIT_STATUS')" />
<intercept-url pattern="**/shop*" access="hasRole('ROLE_INTERNAL') and hasRole('ROLE_CREATE_SALES_ORDER')" />
<intercept-url pattern="/**" access="hasAnyRole('ROLE_INTERNAL','ROLE_EXTERNAL')" />
Nó cố gắng để phù hợp theo thứ tự cho tất cả các filters="none"
, nhưng sau đó nhảy đến mô hình cuối cùng /**
. Vì vậy, URL giống như /appname/ordersearch
bị chặn bởi /**
thay vì **/ordersearch*
. Bất kỳ ý tưởng những gì tôi đang làm sai?