Obecnie piszę trochę dynamiczną aplikację internetową w Javie. Aplikacja ma być platformą zdarzeń, w której można utworzyć konto użytkownika, zalogować się, a następnie można zobaczyć wszystkie otwarte zdarzenia (w późniejszej iteracji użytkownicy mogą tworzyć/uczestniczyć w tych zdarzeniach).Jak mogę obsługiwać/ograniczać dostęp użytkowników do serwletów i jsp?
Teraz struktura aplikacji internetowej może być (uproszczony) opisał tak:
Register-Servlet -> Register.jsp
|
V
Login-Servlet -> Login.jsp
|
V
Main-page-Servlet -> Main.jsp
Więc teraz, użytkownik może przejść do login.jsp, jego login-informacja zostanie wysłana do Serwletu logowania, który ją zatwierdził, a następnie wysłał do Serwletu strony głównej. Następnie strona główna serwletu (po ponownym sprawdzeniu poprawności logowania) pobiera wszystkie bieżące zdarzenia z bazy danych, dołącza je do żądania i przekazuje dalej do pliku Main.jsp, który wyświetla go użytkownikowi.
Teraz, jeśli użytkownik chce uzyskać bezpośredni dostęp do pliku Main.jsp (bez przechodzenia z głównej strony serwletu), oczywiście nie może wyświetlić dostępnych zdarzeń. Obejście, z którego korzystam obecnie, wykonuje kontrolę zerową, aby sprawdzić, czy zdarzenia są dostępne, a jeśli nie, przekierować do strony głównej serwletu.
To przeszkadza mi rozwiązać mój problem w ten sposób, ponieważ uważam, że nie jest to najlepsza praktyka i myślę, że po prostu stworzy wiele innych problemów, im większy otrzyma moja aplikacja.
Moja pierwsza myśl o tym, że może być przydatna, gdybym po prostu "ukryła" wszystkie .jsp od użytkownika, więc użytkownik wylądowałby tylko na serwletach i nie mógł uzyskać dostępu do .jsp w inny sposób .
Czy jest jakiś sposób na zrobienie tego? A jeśli nie, jakie byłoby najlepsze rozwiązanie, gdybym pisał profesjonalną aplikację na poziomie przedsiębiorstwa?
Sprawdź autoryzację i autoryzację. W przypadku serwletów są one zwykle implementowane z i wokół 'HttpSession'. –