Hallo Allerseits, habe folgendes Problem:
Ich habe ein Controller Servlet was meine UserAnfragen auswertet. In der Web.xml habe ich alle Seiten im Unterordner adressadmin verweigert. Rufe ich nun eine JSP per Direktlink in diesem Unterordner auf, erscheint die Login-Form und ich muss mich authentifizieren. So weit so gut. Übergebe ich den Request jedoch an mein Servlet das mich weiterleiten soll, kommt die Login-Form nicht und ich werde direkt durchgeleitet (Cookies vorher gelöscht).
Wie kann ich das Servlet zur Login.jsp zwingen und verhindern dass ich ohne Authentifizierung weitergeleitet werde?
Mein Servlet:
Meine Web.xml:
Was ich nicht möchte ist, dass das Servlet per request.isUserInRole("user") irgendwas programmatisch abprüft. Gibts da irgendeine Einstellung in der web.xml, sodass das Servlet nicht einfach ohne Authentifizierung in einen geschützten Bereich weiterleitet?
Danke im Vorraus...
Ich habe ein Controller Servlet was meine UserAnfragen auswertet. In der Web.xml habe ich alle Seiten im Unterordner adressadmin verweigert. Rufe ich nun eine JSP per Direktlink in diesem Unterordner auf, erscheint die Login-Form und ich muss mich authentifizieren. So weit so gut. Übergebe ich den Request jedoch an mein Servlet das mich weiterleiten soll, kommt die Login-Form nicht und ich werde direkt durchgeleitet (Cookies vorher gelöscht).
Wie kann ich das Servlet zur Login.jsp zwingen und verhindern dass ich ohne Authentifizierung weitergeleitet werde?
Mein Servlet:
Code:
protected void doGet(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException
{
String choice = "";
//Das Weiterleitungstarget ist default immer index.jsp
String target = "index.jsp";
//Die Userwahl wird aus dem request geholt
choice = req.getParameter("choice");
if (choice.equals("profil"))
{
target = "adressadmin/myprofil.jsp";
}
RequestDispatcher dispatcher = req.getRequestDispatcher(target);
dispatcher.forward(req, res);
Meine Web.xml:
Code:
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
<servlet>
<description>Der Main Controller der Anwendung der die Anfragen auswertet und entsprechend weiterleitet</description>
<display-name>Controller</display-name>
<servlet-name>Controller</servlet-name>
<servlet-class>adresscontroller.Controller</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Controller</servlet-name>
<url-pattern>/Controller</url-pattern>
</servlet-mapping>
<security-constraint>
<web-resource-collection>
<web-resource-name>myResourceCollection</web-resource-name>
<url-pattern>/adressadmin/*</url-pattern>
<http-method>DELETE</http-method>
<http-method>GET</http-method>
<http-method>HEAD</http-method>
<http-method>OPTIONS</http-method>
<http-method>POST</http-method>
<http-method>PUT</http-method>
<http-method>TRACE</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>masteruser</role-name>
<role-name>normaluser</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<realm-name>Default</realm-name>
<form-login-config>
<form-login-page>/login.jsp</form-login-page>
<form-error-page>/error.jsp</form-error-page>
</form-login-config>
</login-config>
Was ich nicht möchte ist, dass das Servlet per request.isUserInRole("user") irgendwas programmatisch abprüft. Gibts da irgendeine Einstellung in der web.xml, sodass das Servlet nicht einfach ohne Authentifizierung in einen geschützten Bereich weiterleitet?
Danke im Vorraus...