Direkten Servlet-Aufruf verhindern (JSP)

Raziell

Bekanntes Mitglied
Hallo zusammen,

habe eine kurze Frage und zwar: Wie kann ich einen direkten Servlet-Aufruf vom Benutzer verhindern?

Ich habe beispielsweise 2 Controller. Ein Controller ist der Dispatcher, welcher den Benutzer auf eine JSP forwarden soll. Auf den Controller kann der Benutzer logischerweise über die URL zugreifen.

Beispiel: http://localhost:8080/Webapp/Dispatcher

Dann habe ich allerdings noch einen zweiten Controller den LoginController, welcher nicht über die URL erreichbar sein soll, sondern später beispielsweise bei dem Post des Login Formulars aufgerufen werden soll.

Dieses Servlet soll nun nicht über http://localhost:8080/Webapp/LoginController erreichbar sein.

Macht es überhaupt Sinn, das so umzusetzen?

Gruß
 
Kannst du auf verschiedene Arten erreichen. Entweder den Zugriff in der web.xml einschraenken, direkt im Code ginge es auch in dem du alle Requests die nicht von einer speziellen IP oder Domain abweist, oder aber z.B. mit einem Apache der vor deinem Tomcat läuft.

Das macht durchaus Sinn und wird oft so gemacht.
 
Hi,

danke für die Antwort.

Hast du oder hat jmd. vllt. ein konkretes Beispiel, wie ich so etwas über die web.xml realisieren kann?

Und wenn ich dann festlege, dass der Benutzer standardmäßig nur auf den Dispatcher zugreifen kann,
wie kann er dann noch die anderen Servlets (Beispielsweise beim post eines Formulars) aufrufen?

EDIT:
-----------------------------------------------------------------------------

Ich möchte es zum besseren Verständnis nochmal zusammenfassen.
Ich möchte eigtl. lediglich verhindern, dass der Anwender über die URL manuell auf
Servlets zugreifen kann ausser auf das Dispatcher Servlet. Das Dispatcher Servlet ist quasi
der Einstiegspunkt der Anwendung.

Durch absenden von Formularen beispielsweise soll der Benutzer allerdings auch auf
andere Servlets zugreifen können (Bsp: Ein LoginController (Servlet)).

Gruß
 
Zuletzt bearbeitet:

Neue Themen


Zurück
Oben