Thông thường, tôi đặt các quyết định ủy quyền trong bộ điều khiển phía máy chủ của mình. Đây là những điểm cuối RESTful gần đây, nhưng tôi nghĩ tương tự như vậy đối với kiến trúc kiểu MVC. Vì lợi ích của tranh luận giả định rằng đó là ủy quyền dựa trên vai trò. Một phương thức được bảo vệ sẽ được chú thích hoặc thực hiện kiểm tra và trả lại 403 nếu cần thiết.
Bây giờ, cho rằng ủy quyền trên thực tế là một quy tắc kinh doanh - "chỉ quản trị viên mới có thể liệt kê X", tôi nghĩ rằng họ nên bị đẩy xuống một lớp. Khi bộ điều khiển yêu cầu lớp nghiệp vụ thực hiện thao tác, lớp dịch vụ hoặc lớp nghiệp vụ thông báo cho bộ điều khiển không được ủy quyền.
Đây có phải là một cách tiếp cận hợp lý? Có những bất lợi cho điều này?
Tôi không thích có Dịch vụ ủy quyền về cơ bản chứa một loạt các quy tắc được mã hóa theo thủ tục tĩnh để thực hiện việc này nhưng có lẽ sẽ hợp lý khi giữ tất cả logic truy cập ở một nơi. Nó có phải là một mối quan tâm xuyên suốt nên được giữ riêng biệt?
Vì vậy, tôi đang hỏi liệu có ai đã làm điều này không và làm thế nào họ đạt được nó một cách sạch sẽ hoặc nếu có bất kỳ tài nguyên tốt nào tôi có thể đọc. Tôi đang sử dụng Java fwiw nhưng đây là một câu hỏi bất khả tri về ngôn ngữ.
Tôi đã kiểm tra các câu hỏi liên quan ở đây và chúng rất mỏng trên mặt đất và câu trả lời. Ví dụ: Xác thực và ủy quyền trong các mô hình miền và thực hiện điều đó thông qua một lớp dịch vụ cho MVC
Tôi đang đọc các tài liệu bảo mật mùa xuân , đưa ra một số lập luận tốt cho nó là mối quan tâm xuyên suốt, nhưng tôi lo lắng đó chỉ là "con đường mùa xuân" và muốn có quan điểm rộng hơn. Nó cũng liên kết ứng dụng của bạn với một khung cụ thể.