2010-08-08 21 views
7

Sự khác biệt giữa ROLE_USER và ROLE_ANONYMOUS trong cấu hình url chặn của mùa xuân như ví dụ bên dưới là gì?Sự khác biệt giữa ROLE_USER và ROLE_ANONYMOUS trong cấu hình url chặn của mùa xuân là gì?

<http auto-config="false" access-decision-manager-ref="accessDecisionManager" 
    use-expressions="true"> 
    <intercept-url pattern="/admin/**" access="hasRole('ROLE_ANONYMOUS')" 
     requires-channel="http" /> 
    <intercept-url pattern="/login/**" access="hasRole('ROLE_ANONYMOUS')" 
     requires-channel="${application.secureChannel}" /> 
    <intercept-url pattern="/error/**" access="hasRole('ROLE_ANONYMOUS')" 
     requires-channel="http" /> 
    <intercept-url pattern="/register/**" access="hasRole('ROLE_ANONYMOUS')" 
     requires-channel="${application.secureChannel}" /> 
    <intercept-url pattern="/" access="hasRole('ROLE_ANONYMOUS')" 
     requires-channel="http" /> 
    <intercept-url pattern="/**" access="hasRole('ROLE_USER')" 
     requires-channel="http" /> 
    <form-login login-page="/login" login-processing-url="/login/submit" 
     authentication-failure-url="/login/error" /> 
    <logout logout-url="/logout" /> 
</http> 

Trả lời

13

ROLE_ANONYMOUS là vai trò mặc định được gán cho một người sử dụng không được thẩm định (vô danh) khi một cấu hình sử dụng mùa xuân an nhân "anonymous authentication" filter. Điều này được kích hoạt theo mặc định. Tuy nhiên, có thể rõ ràng hơn nếu bạn sử dụng cụm từ isAnonymous() thay vào đó, có cùng ý nghĩa.

ROLE_USER không có ý nghĩa trừ khi bạn chỉ định vai trò này cho người dùng của mình khi họ được xác thực (bạn chịu trách nhiệm tải vai trò (chính quyền) cho người dùng được xác thực). Nó không phải là tên được xây dựng trong cơ sở hạ tầng của Spring Security. Trong ví dụ đã cho, có lẽ vai trò đó được gán cho người dùng đã được xác thực.

1

ROLE_ANONYMOUS không có thông tin xác thực người dùng, ROLE_USER có thông tin xác thực người dùng ... đã được xác thực.

này được giải thích của tôi dựa trên cấu hình cung cấp

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