Hallo!
Ich habe mich heute mal ein wenig mit den in Tomcat 5.5.16 eingebauten Sicherheitsmechanismen beschäftigt.
Ich habe eine Form-Basierte Authorisierung gewählt und das wie folgt ausgebaut:
Webroot:
/Webroot/index.jsp
/Webroot/secure/denied.html
/Webroot/secure/login.jsp
/Webroot/secure/secure.jsp
Folgendes soll passieren und funktioniert auch:
Wenn man im Browser direkt die Datei http://localhost:8080/Context/secure/secure.jsp aufruft wird erstmal die Datei secure/login.jsp aufgerufen und nachdem man sich erfolgreich gegen den Inhalt der MySQL-DB authentifiziert hat bekommt man die Seite secure/secure.jsp zu sehen. Ansonsten kommt man zu secure/denied.html
Die web.xml beinhaltet das folgende:
So weit, so schön! Nur gibt es jetzt ein Problem mit der Datei index.jsp die wie folgt ausschaut:
Das ganze hat zum Ziel, dass man auch beim Aufrufe von http://localhost:8080/Context/ gleich zum Login gebeten wird. Nur landet man sofort bei secure/secure.jsp - ohne einen vorherigen Login. Ich weiß, der Brwoser behält den Login im Speicher, daran liegt es aber definitiv nicht, denn auch nahc dem Browser neustart und ohne vorher anzumelden passiert genau das gleiche.
Es kommt mir so vor, als ob jsp:forward sich an den von mir getroffenen Sicherheitseinstellungen vorbeimogelt.
Wie kann ich das verhindern? Hab ich einen grundfalschen Ansatz genommen oder nur was beim Konfigurieren vergessen?
Dank und Gruß,
Sascha
Ich habe mich heute mal ein wenig mit den in Tomcat 5.5.16 eingebauten Sicherheitsmechanismen beschäftigt.
Ich habe eine Form-Basierte Authorisierung gewählt und das wie folgt ausgebaut:
Webroot:
/Webroot/index.jsp
/Webroot/secure/denied.html
/Webroot/secure/login.jsp
/Webroot/secure/secure.jsp
Folgendes soll passieren und funktioniert auch:
Wenn man im Browser direkt die Datei http://localhost:8080/Context/secure/secure.jsp aufruft wird erstmal die Datei secure/login.jsp aufgerufen und nachdem man sich erfolgreich gegen den Inhalt der MySQL-DB authentifiziert hat bekommt man die Seite secure/secure.jsp zu sehen. Ansonsten kommt man zu secure/denied.html
Die web.xml beinhaltet das folgende:
Code:
...
<security-constraint>
<display-name>Security Constraint</display-name>
<web-resource-collection>
<web-resource-name>Protected Area</web-resource-name>
<url-pattern>/secure/*</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>FORM</auth-method>
<realm-name>Form-based Authentication</realm-name>
<form-login-config>
<form-login-page>/secure/login.jsf</form-login-page>
<form-error-page>/secure/denied.html</form-error-page>
</form-login-config>
</login-config>
...
So weit, so schön! Nur gibt es jetzt ein Problem mit der Datei index.jsp die wie folgt ausschaut:
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<jsp:forward page="/secure/secure.jsp"></jsp:forward>
Das ganze hat zum Ziel, dass man auch beim Aufrufe von http://localhost:8080/Context/ gleich zum Login gebeten wird. Nur landet man sofort bei secure/secure.jsp - ohne einen vorherigen Login. Ich weiß, der Brwoser behält den Login im Speicher, daran liegt es aber definitiv nicht, denn auch nahc dem Browser neustart und ohne vorher anzumelden passiert genau das gleiche.
Es kommt mir so vor, als ob jsp:forward sich an den von mir getroffenen Sicherheitseinstellungen vorbeimogelt.
Wie kann ich das verhindern? Hab ich einen grundfalschen Ansatz genommen oder nur was beim Konfigurieren vergessen?
Dank und Gruß,
Sascha