Tomcat Login Mechanismus

Hi,

esion's Lösung ist wunderbar, wenn man ein Request-Objekt zur Verfügung hat. Aber wie komme ich innerhalb meiner Realm-Klasse an das Request-Objekt heran?

Danke und Gruß
Markus
 
ich benutz den Thread hier einfach mal.

ich möchte auf meiner login seite eine fehlermeldung anzeigen wenn die passende rolle nicht stimmt, anstatt zu der access denied seite von tomcat verlinkt zuwerden.

mit folgendem eintrag in der web.xml t das auch:
<error-page>
<error-code>403</error-code>
<location>/faces/login.jsp?error=403</location>
</error-page>

wenn ich jetzt allerdings mit einer fehlenden rolle versucht habe mich einloggen, bekomm ich wie gewünscht die fehlermeldung, jedoch funktioniert danach der login auch mit einem username mit berechtigung nicht mehr.
folgende fehlerseite erscheint:

message /user_webapp/faces/protected/j_security_check

description The requested resource (/user_webapp/faces/protected/j_security_check) is not available.
 
Hat sich erledigt ...


Oh jeh oh jeh, ich dachte das Thema realm wäre für mich erledigt.


eigendlich funktioniert auch alles wie es soll.
Jetzt soll es noch einen Intranetbereich geben.



Jetzt funktioniert das kacheln (tiles) im geschützen bereich nicht mehr ...

Ich vermute das, weil weil die Seite richtig dargestell wird wenn es im öffentlichen
Bereich ist

zb:

<definition name="sec.default" path="/WEB-INF/template/default_template.jsp">
<put name="nav" value="/WEB-INF/tiles/nav.jsp" />
<put name="left" value="/WEB-INF/tiles/left.jsp" />
<put name="right" value="/WEB-INF/tiles/right.jsp" />
<put name="footer" value="/WEB-INF/tiles/footer.jsp" />
</definition>
<definition name="/default_body.tiles" extends="sec.default">
<put name="body" value="/default_body.jsp" />
</definition>

und so funktioniert es nicht: (/secure wird durch tomcats realm freigegeben.)
Es sieht so aus als ob tomcats realm beim rendern die Seite nicht frei gibt.


<definition name="sec.default" path="/WEB-INF/template/default_template.jsp">
<put name="nav" value="/WEB-INF/tiles/nav.jsp" />
<put name="left" value="/WEB-INF/tiles/left.jsp" />
<put name="right" value="/WEB-INF/tiles/right.jsp" />
<put name="footer" value="/WEB-INF/tiles/footer.jsp" />
</definition>
<definition name="/default_body.tiles" extends="sec.default">
<put name="body" value="/secure/default_body.jsp" />
</definition>

Wie bekomme ich es hin das die Seite dargestellt wird so wie es

in der <definition> beschrieben ist?

Vermutlich muss ich irgendwo den Zugriff erlauben, eine Rolle zuweisen.

Wo und wie? Sie soll natürlich weiterhin rollenabhängig geschützt bleiben.

Hab leider keine Doku dazu gefunden. Laut struts doku sollte es funktionieren

wenn eine rolle mit in die definition geschrieben wird. Das funktioniert bei mir nicht.

Es wird nach der Anmeldung und aufruf der Seite nicht gechachelt.

Is ist so als ob es das nicht geben würde.

<put name="nav" value="/WEB-INF/tiles/nav.jsp" />
<put name="left" value="/WEB-INF/tiles/left.jsp" />
<put name="right" value="/WEB-INF/tiles/right.jsp" />
<put name="footer" value="/WEB-INF/tiles/footer.jsp" />

(Es hat mich schon etliche Stunden gekostet das Problem einzugrenzen.)

Für jede Anrgung bin ich dankbar.

Grüsse hansi
 
Zuletzt bearbeitet:
Hi,

das Beispiel hat nun bei mir auch soweit ganz gut geklappt. Nun wollte ich das ganze in einem von mir erstellten Projekt mit einfügen und siehe da es klappt nicht...

Ich habe einen Server (Apache Tomcat 6.0) in Eclipse definiert. Dieser Server wird auch hier gestartet, um das ganze ausführen zu lassen.
Der Webservice wurde mit Hilfe von Axis 2.0 realisiert. Auf meiner Client Seite befinden sich mehrere JSP Datei die eine Ausführung ermöglichen. Die Auswahl diser JSP Datei geschieht durch ein Menü.

Das Ziel soll nun sein, dass man sich vorher einloggen muss, damit die Datei Menü.jsp ausgeführt werden kann.

Muss das ganze Beispiel, d.h login,jsp und etc auch in dieses Projekt mit hineinimplementiert werden, oder wird hierzu ein neues Projekt geöffnet indem man das ganze realisiert?
 
Zuletzt bearbeitet:
> neues Projekt geöffnet indem man das ganze realisiert?

Der code muss deiner webApp zur Verfügung stehen. Also kein neues Projekt in Eclipse.
 
@Fahrrad

description The requested resource (/user_webapp/faces/protected/j_security_check) is not available.

Du kannst nur indirekt auf die j_security_check zugreifen. Das heist du must ein forward oder so voranstellen.

Grüsse hansi


Wenn es sich noch nicht erledigt hat dann poste bitte die Exception.
 
Zuletzt bearbeitet:
Hallo,

ich habe das Beispiel hier gefunden und finde es gut brauchbar.

Ich wollte es so umbauen, dass ich dirket in den geschützen bereich komme, wenn ich über die url die benötigten parameter mitgebe. (Warum und weshalb soll dabei mal außen vor sein)

Nun ist es so, dass die Parameter zwar übernommen werden, aber beim Click auf Login passiert nix, bzw. er geht nicht in den geschützen Bereich. Hat jemand eine Idee, warum?

HTML:
<html>
 	<head>
 		<title>Login</title>
 	</head>
 	<body>

 		<form action='<%= response.encodeURL("j_security_check") %>' method="POST" name="form">
 			Username:<input type="text" name="j_username" id="j_username" value="<%= request.getParameter("j_username") %>" /><br>
 			Password:<input type="password" name="j_password" id="j_password" value="<%= request.getParameter("j_password") %>" /><br>
 			<input type="submit" value="login" name="loginbtn" id="loginbtn" />
 		</form>
 	</body>
 </html>

Vielen Dank schonmal...
 
> Hat jemand eine Idee, warum?

Die Anmeldung hat vermutlich schon funktioniert. Versuche eine Seite aus dem geschützten Bereich aufzurufen. Das klappt vermutlich.

Tomcat schickt aber im anmeldemechanissmuss nirgends wo hin.
Wohin auch? Das Ziel muss vorher bekannt sein.

grüsse
 
Hallo Leute,

ich MUSS mich seit einiger Zeit auch mit LDAP beschäftigen, da ein Kunde seine Spring-Web-Anwendung darüber schützen möchte. Nun habe ich mir aus Testzwecken openLDAP installiert und versucht, den Zugriff auf die Anwendung über LDAP zu realisieren. Soweit klappt das auch, allerdings habe ich noch ein paar Verständnisprobleme. Der Kunde möchte nämlich eine Konfigurationsbeschreibung erhalten, damit er die Anwendung auf seinem Server installieren und den Zugriff selbst konfigurieren lassen kann. Nun fehlen mir allerdings einige Begriffe. Folgend erstmal kurz mein Realm-Eintrag (mit Daten des Test-LDAP):

HTML:
<Realm className="org.apache.catalina.realm.JNDIRealm"
  debug="99"
  connectionName="cn=Manager,dc=mycompany,dc=com"
  connectionPassword="admin"
  connectionURL="ldap://localhost:389"
  roleBase="ou=roles,dc=mycompany,dc=com"
  roleName="cn"
  roleSearch="(uniqueMember={0})"
  roleSubtree="false"
  userSearch="(uid={0})"
  userPassword="userPassword"
  userPattern="uid={0},ou=people,dc=mycompany,dc=com"
/>

Die login-Art habe ich auf Baisc, da keine separate Loghinseite erstellt werden soll. Nun fehlt mir der Hintergrund zu den einzelnen Punkten:
1. cn=Manager - Ist das eine Art Admin für die Verbindung?
2. dc=mycompany,dc=com - Was besagen diese beiden Ausdrücke?
3. was ist der Unterschied zwischen roleSubtree=(true|false)?

Danke schonmal an jeden, der mir helfen kann.

Grüße
Hardi
 
Zurück