2011-09-12 29 views
19

Đây là một phần từ Xuân An dụ petclinic:Sự khác biệt giữa quyền truy cập = "allowAll" và bộ lọc = "none"?

<http use-expressions="true"> 
    <intercept-url pattern="/" access="permitAll"/> 
    <intercept-url pattern="/static/**" filters="none" /> 
    <intercept-url pattern="/**" access="isAuthenticated()" /> 
    <form-login /> 
    <logout /> 
</http> 

sự khác biệt giữa truy cập = "permitAll" và bộ lọc = "none" là gì?

Url:http://static.springsource.org/spring-security/site/petclinic-tutorial.html

Trả lời

28

Sự khác biệt là filters = "none" vô hiệu hóa bộ lọc Xuân An cho các URL cụ thể, trong khi cấu hình access = "permitAll" uỷ quyền mà không cần vô hiệu hóa bộ lọc.

Trong thực tế, filters = "none" có thể gây ra sự cố khi tài nguyên phía sau yêu cầu một số chức năng của Spring Security. Ví dụ: bạn không thể sử dụng nó cho trang đăng ký người dùng thực hiện đăng nhập có lập trình khi gửi (User Granted Authorities are always : ROLE_ANONYMOUS?).

+0

Vì vậy, tôi nên sử dụng 'access =" allowAll "' thay vì 'filters =" none "' ngay cả đối với các tệp css và js cho một ứng dụng bảo mật? – kamaci

+0

Tôi cũng đã nhận xét tại liên kết của bạn. – kamaci

+0

@kamaci: Theo như tôi hiểu, 'filters =" none "' không gây ra bất kỳ vấn đề nào đối với tài nguyên tĩnh. Tuy nhiên, nếu bạn sử dụng nó cho các tài nguyên động, bạn cần phải ghi nhớ sự khác biệt. – axtavt

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