2011-01-16 52 views
25

Đây là câu hỏi rất đơn giản, có lẽ là câu hỏi được hỏi nhiều nhất và được phát triển thường xuyên như một phần của bất kỳ ứng dụng web nào. Giả sử tôi đang lập kế hoạch xây dựng một ứng dụng web và một số yêu cầu chức năng bao gồm (ngoài các yêu cầu bảo mật thông thường), - Cần phải có người dùng đăng ký hồ sơ tài khoản mới - Xác thực người dùng bằng cách xác thực ứng dụng gốc/Facebook hoặc Google hay Yahoo hoặc OpenID đăng nhập - cho phép mất lấy lại mật khẩu - xử lý phiên cầnỨng dụng web - Khung xác thực/đăng nhập

có một ra khỏi khuôn khổ hộp (Drupal, Liferay, Tapestry với Tynamo, Wicket ??) mà tôi có thể sử dụng để bọc ứng dụng của tôi có thể là một loạt các JSP hoặc HTML với JS? Tôi biết tôi đang hỏi một câu hỏi rất đơn giản và có thể là một câu hỏi ngây thơ. Nhưng đây là một chủ đề mà mỗi chuyên gia phát triển web sẽ đi qua. Bất kỳ trợ giúp, tư vấn và con trỏ được đánh giá cao.

Trả lời

27

tôi khuyên bạn nên dùng một cái nhìn tại Apache Shiro: http://shiro.apache.org/

Nó xử lý các phần an ninh của ứng dụng của bạn và cung cấp cho bạn rất nhiều sự linh hoạt trong cách bảo vệ mọi thứ. Ví dụ: bạn có thể thêm chú thích để bảo mật các phương thức riêng lẻ (ví dụ: bạn không thể chạy phương thức này trừ khi bạn là quản trị viên), các trang riêng lẻ (ví dụ: bạn không thể tải trang này trừ khi bạn là quản trị viên), và mẫu URL (bạn phải là quản trị viên để truy cập mọi thứ chứa/admin/* trong url).

Làm thế nào phức tạp nó có thể được làm để bảo mật đúng, Shiro là rất đơn giản để sử dụng. Nó có thể mất một chút để có được đầu của bạn xung quanh một số khái niệm ban đầu, nhưng Shiro làm một công việc rất tốt để che giấu càng nhiều sự phức tạp càng tốt. Ngoài ra danh sách người dùng rất nhạy và cực kỳ hữu ích.

Nếu bạn sử dụng Tapestry, bạn có thể xem http://tynamo.org/tapestry-security+guide Nó làm cho nó rất dễ dàng để có được Shiro và chạy trong một ứng dụng Tapestry và cung cấp cho bạn một số dễ sử dụng thẻ để sử dụng trong các mẫu của bạn.

Shiro sẽ không cung cấp cho bạn tích hợp OpenID, OAuth hoặc Facebook trong hộp, nhưng rất có thể bạn sẽ cần phải tùy chỉnh phần đó cho ứng dụng của mình. Tôi tin rằng có một số công việc đang được thực hiện để giúp tích hợp các chức năng sẽ giúp cho phép các loại xác thực này trong khung công tác.

Một số khung công tác xây dựng trên Shiro có thể cung cấp nhiều hơn những gì bạn đang tìm kiếm. Ví dụ: http://tynamo.org/tynamo-federatedaccounts+guide sẽ cung cấp cho bạn thêm hỗ trợ cho các đăng nhập được liên kết trong ứng dụng tấm thảm. Nó vẫn còn trong giai đoạn đầu, nhưng có thể đang làm việc nếu bạn đang sử dụng Tapestry. Ngay cả khi nó không làm chính xác những gì bạn cần, nó có thể cung cấp một số ví dụ tốt để xem xét.

Bạn cũng có thể quan tâm: http://static.springsource.org/spring-security/site/

Như một mặt lưu ý: Ngoài việc an ninh ở đó có lẽ là một loạt các công nghệ khác mà bạn sẽ cần trong một dự án web điển hình. Bạn có thể cần bảo mật, kiên trì, quản lý người dùng cơ bản, v.v. Nếu bạn tạo nhiều ứng dụng web, có thể tạo ra một nguyên mẫu maven cho phép bạn nhanh chóng có được một ứng dụng cơ bản mới và chạy để bạn có thể bắt đầu viết mã với tất cả cấu trúc ban đầu đã sẵn sàng. AppFuse cố gắng làm điều này, nhưng nó nhắm đến việc cho phép bạn có nhiều lựa chọn khác nhau khi nói đến các khung công tác web. Nếu bạn biết bạn sẽ sử dụng công nghệ gì, có một ứng dụng khởi động được tùy chỉnh cho nhu cầu của bạn có thể là một công cụ tiết kiệm thời gian rất lớn.

0

Tôi muốn xem Apache Shiro hoặc Spring Security.

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