2010-05-19 25 views
5

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?

Trả lời

3

**/ordersearch* không khớp với /appname/ordersearch, bạn cần /**/ordersearch*.

Các vấn đề liên quan