Tôi hiện đang viết một ứng dụng web động nhỏ trong Java. Ứng dụng được coi là nền tảng sự kiện nơi bạn có thể tạo tài khoản người dùng, đăng nhập và sau đó bạn có thể xem tất cả các sự kiện mở (trong lần lặp lại sau, người dùng có thể tạo/tham gia vào các sự kiện đó).Làm cách nào để xử lý/hạn chế quyền truy cập của người dùng vào servlets & jsp's?
Ngay bây giờ, cấu trúc của các ứng dụng web có thể được (giản thể) được mô tả như thế này:
Register-Servlet -> Register.jsp
|
V
Login-Servlet -> Login.jsp
|
V
Main-page-Servlet -> Main.jsp
Vì vậy, ngay bây giờ, người dùng có thể đi đến login.jsp, đăng nhập-thông tin của ông sẽ được gửi vào Login-Servlet, nó sẽ xác thực nó và sau đó gửi nó đến Main-Page-Servlet. Main-Page-Servlet sau đó (sau khi xác thực đăng nhập lại) nhận tất cả các sự kiện hiện tại từ một cơ sở dữ liệu, đính kèm nó vào yêu cầu và chuyển nó đến Main.jsp, hiển thị nó cho người dùng xem.
Bây giờ, nếu người dùng muốn truy cập trực tiếp Main.jsp (không đến từ Trang chính-Servlet), rõ ràng là không thể hiển thị các sự kiện có sẵn. Cách giải quyết mà tôi đang sử dụng hiện đang thực hiện kiểm tra null để xem các sự kiện có ở đó không, và nếu không, hãy chuyển hướng đến Main-Page-Servlet.
Nó làm phiền tôi giải quyết vấn đề của tôi như vậy, vì tôi không nghĩ đó là thực hành tốt nhất và tôi nghĩ nó sẽ tạo ra nhiều vấn đề khác mà ứng dụng của tôi càng lớn. Ý tưởng đầu tiên của tôi về điều này là, nó có thể hữu ích nếu tôi chỉ có thể "ẩn" tất cả .jsp từ người dùng, vì vậy người dùng sẽ chỉ truy cập vào servlet và không thể truy cập vào tệp .jsp theo cách khác .
Có cách nào để làm điều đó không? Hoặc, nếu không, giải pháp thực hành tốt nhất là gì nếu tôi viết một ứng dụng cấp doanh nghiệp chuyên nghiệp?
Xem xét xác thực và ủy quyền. Với các servlet, chúng thường được thực hiện với và xung quanh 'HttpSession'. –