Tôi có máy chủ dựa trên Jersey
mà tôi muốn bảo mật với OAuth 2.0
. Có hai đường dẫn mà tôi đã thấy phổ biến:Thêm máy chủ RESTful Oauth 2.0 đến Jersey dựa trên Jersey
- Oltu - Tương thích với Jersey và dường như được hỗ trợ, mặc dù không phải cũng như Bảo mật mùa xuân. This 2012 question dường như đề xuất đây là con đường để đi, nhưng tôi muốn xác nhận về một bối cảnh năm 2016 vì vậy tôi sẽ không thực hiện một cái gì đó không được hỗ trợ nữa.
- Spring Security - Dường như nó rất phổ biến, nhưng đường dẫn này ngụ ý thay đổi máy chủ thành một MVC dựa trên Spring. Tôi không biết nếu đó là một cái gì đó được đề nghị dựa trên những lợi ích của việc sử dụng một cái gì đó như được hỗ trợ rộng rãi như Spring và chi phí của refactoring.
Với sự hỗ trợ tôi có nghĩa là một dự án phát triển liên tục, cộng đồng được thiết lập tốt với hướng dẫn, tài liệu và một số thư viện cho khách hàng (web, di động, máy chủ) đã có sẵn.
Tùy chọn nào mạnh hơn? Có tùy chọn hoặc tùy chọn khác không?
Trong mọi trường hợp. Có tài liệu tham khảo hay hướng dẫn tốt để bắt đầu triển khai điều này không?
CẬP NHẬT
Sau vài giờ đọc và hiểu biết về cả hai nhà cung cấp OAuth tôi đã đề cập, tôi cảm thấy Apache Oltu của documentation không hướng dẫn cho tôi nhiều như có thành phần chính mà không phải là tài liệu tuy nhiên, nhưng example đã cho tôi hình ảnh tốt hơn về cách thực hiện Oltu
. Mặt khác, đi qua Spring Security's material Tôi đã biết rằng nó vẫn có thể được xây dựng trên một dự án java không dựa trên MVC của Spring. Nhưng có một sự tiếp xúc giới hạn các triển khai/hướng dẫn về Spring Security trên một dự án không dựa trên Spring.
cách tiếp cận khác:
tôi đã đưa ra một kiến trúc mà có thể ổn định hơn và sẽ không quan tâm đến những chi tiết thực hiện của máy chủ bên trong (một trong những đã thực hiện sử dụng Jersey). Có một máy chủ được dành riêng cho mục đích bảo mật (ủy quyền, xác thực, lưu trữ thẻ trong cơ sở dữ liệu riêng của nó, vv) ở giữa hoạt động như một cổng vào giữa thế giới bên ngoài và máy chủ bên trong. Về cơ bản nó hoạt động một relay và định tuyến các cuộc gọi, qua lại và đảm bảo rằng máy khách không biết gì về máy chủ bên trong và cả hai thực thể chỉ giao tiếp với máy chủ bảo mật. Tôi cảm thấy đây sẽ là con đường để tiến lên phía trước như
- Thay thế bằng một nhà cung cấp bảo mật khác có nghĩa là cắm máy chủ bảo mật và thêm mới.
- Máy chủ bảo mật không quan tâm đến việc triển khai máy chủ bên trong và các cuộc gọi vẫn sẽ tuân thủ các tiêu chuẩn RESTful.
Tôi đánh giá cao đề xuất hoặc phản hồi của bạn về phương pháp này.
Hỗ trợ OAuth 2 của Jersey chỉ ở phía máy khách. –
Takahiko Kawasaki, tôi đã đọc lại câu hỏi, tôi không nghĩ rằng vardhinisuresh27 muốn thực hiện là cơ chế nội bộ oauth riêng. Tại sao không sử dụng cái đã phát triển và cung cấp? – jeorfevre
Nếu vardhinisuresh27 muốn triển khai OAuth 2.0 _client_, hỗ trợ OAuth 2.0 của Jersey có thể được sử dụng. Mặt khác, nếu anh ta muốn một OAuth 2.0 _server_, tôi phải chỉ ra rằng Jersey không hỗ trợ kịch bản. Vì anh ta đã đề cập đến Oltu và Spring Security, cả hai đều là các giải pháp OAuth 2.0 _server_, tôi nghĩ anh ấy muốn triển khai một máy chủ OAuth 2.0. –