Trường hợp sử dụng này không thể thực hiện được bằng chức năng điều khiển truy nhập dựa trên vai trò mặc định (RBAC), vì quyền của người dùng đang thay đổi động trong thời gian chạy tùy thuộc vào một số dữ liệu liên quan đến người dùng.
Đây thực sự là trường hợp sử dụng Danh sách kiểm soát truy cập (ACLs) được thiết kế cho.
Bảo mật mùa xuân có hỗ trợ cho ACL bằng cách thêm bình xuân-acl.Đây là câu trích dẫn từ hướng dẫn bảo mật mùa xuân Phần Acl:
Các ứng dụng phức tạp thường sẽ thấy cần phải xác định quyền truy cập không đơn giản theo yêu cầu web hoặc cấp độ yêu cầu phương thức. Thay vào đó, các quyết định bảo mật cần bao gồm cả ai (Xác thực), nơi (MethodInvocation) và cái gì (SomeDomainObject). Nói cách khác, ủy quyền quyết định cũng cần phải xem xét đối tượng thực thể đối tượng miền thực tế của lời gọi phương thức.
Xem phần spring security manual 16.1 để biết chi tiết về cách ACL bảo mật mùa xuân hoạt động. Đây là tutorial về cách sử dụng ACL bảo mật mùa xuân.
Nhưng ACL mùa xuân ngụ ý 4 bảng cơ sở dữ liệu bổ sung, v.v ... vì vậy nếu đây là trường hợp duy nhất trong ứng dụng của bạn, tốt hơn hết là tạo trình quản lý quyết định tùy chỉnh với một số quy tắc bị bẻ khóa.
Nhưng nếu trường hợp sử dụng này thường xuyên trong ứng dụng của bạn, bạn nên cân nhắc chuyển sang ACL thay vì RBAC, hy vọng điều này sẽ hữu ích.
Nguồn
2013-12-08 01:49:37
Bạn có thể giải thích cách bạn định sử dụng "danh mục" không? –
Danh mục là một thực thể chứa một tập hợp các thực thể bài viết. Nó được chọn khi người dùng đang điều hướng qua ứng dụng. – Stefan