Tomcat-Auth. in JSF?

Status
Nicht offen für weitere Antworten.

SaschaLR

Bekanntes Mitglied
Hallo Leute!

Jetzt hab ich mal eine Frage zu Tomcat und JSF.

Ich nutze zur Zeit Security Constraints von Tomcat um Zugang zu bestimmten Teilen zu sichern. Ein Login per Formular ist nötig.

Langsam wäre es auch schön, wenn der gesicherte Bereich personalisiert wäre. Daher wollte ich mal fragen ob ich die Benutzerdaten, die bei der Anmeldung (Tomcat) in einem Formular eingegeben werden auch gleich irgendwie in JSF nutzen kann, ohne dass ich den User nochmal bitten muss sich an der Applikation anzumelden? Oder muss ich dazu auf die Tomcat-Anmeldung verzichten und alles selbst regeln?

Das Problem, dass sich bisher für mich ergibt ist, dass wenn ich eine JSF-Form benutze um den Username in eine Backingbean zu bekommen, das Name-Attribut der Eingabefelder auf "form_name:j_username" und "form_name:j_password" gesetzt wird und Tomcat damit nicht mehr arbeitet.

Dank und Gruß, Sascha
 

Gumble

Bekanntes Mitglied
ich hab mal mit einem org.apache.catalina.Valve Objekt das hingewurstet. Aber auch nur aus dem Netz uebernommen. Dort kannst Du im Request Objekt rumfummeln und imho aus 'form_name:j_username' 'j_username' machen. Habs aber nicht mehr im Kopf.
Ist aber imho mehr ein Workaround.
Da mich das Thema interessiert und ich meine Webapp, an der ich gerade bastel, auch noch sichern möchte, hab ich mal in Sun's jsf forum gesucht - da gibts genug Beitraege zu dem Thema.
ungelesen:
http://forum.java.sun.com/thread.jspa?threadID=594623&messageID=3144980
 

SaschaLR

Bekanntes Mitglied
Danke für die Antwort!

Die Idee mit Valve ist zwar nicht was ich erhofft hatte, aber könnte ganz gut funktionieren. Werde das mal versuchen.

Also, das aus dem Link von dir habe ich mal überflogen, aber es sieht nach etwas viel zu sehr zurechtgebasteltem aus.

Also, wenn es keine vorgesehenen Funktionen für sowas gibt ist wärs schade ...

Sascha
 

Gumble

Bekanntes Mitglied
evtl auch:
FacesContext.getCurrentInstance().getExternalContext().getUserPrincipal().getName()

Aber dann bist du ja schon durch das j_security Servlet gelaufen, denn dieses setzt ja die Werte im Kontext. D.h. man muss die Login-Page vor der eigentlichen JSF App bauen.

Hast Du ein eigenes LoginModul geschrieben?

bin immer noch auf der Suche nach der perfekten JAAS+JSF Integration...
 

SaschaLR

Bekanntes Mitglied
Gumble hat gesagt.:
Hast Du ein eigenes LoginModul geschrieben?

bin immer noch auf der Suche nach der perfekten JAAS+JSF Integration...

Was genau meinst du damit?

Also, ich habe bisher nur die ganz normalen Tomcat-Möglichkeiten genutzt um einen formularbasierten Login gegen eine MySQL DB zu machen.

Also, die DB und das pasende Mapping bekanntgemacht (in der server.xml) und halt die web.xml der Applikation so angepasst, das es einen geschützen Bereich gibt.

Code:
<Realm className="org.apache.catalina.realm.JDBCRealm" debug="99"
		driverName="com.mysql.jdbc.Driver"
		connectionURL="jdbc:mysql://localhost/authority"
		connectionName="tomcat" connectionPassword="xxx"
		userTable="users" userNameCol="user_name" userCredCol="user_pass"
		userRoleTable="user_roles" roleNameCol="role_name"
		digest="md5"/>

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>

Oder war das an deiner Frage vorbei?
 

Gumble

Bekanntes Mitglied
ok du machst den Datenbankzugriff ueber das JDBCRealm. Man kann sich auch sein eigenes LoginModul ableiten und dort die Authentifizierung vornehmen. Oft hat man ja die Tabellen in Objekte gemappt (ORM, z.B. Hibernate), so kann man auf dieser Ebene arbeiten. Ist auch sinnvoll dann auch konsequent auf direkte DB-Queries zu verzichten.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Tomcat Application Path bestimmen Allgemeines EE 0
TheWhiteShadow JSF plugins für tomcat webapp Allgemeines EE 0
X Tomcat checkParachute Allgemeines EE 3
C Servlet Tomcat/Jersey findet REST-Service nicht Allgemeines EE 3
J Global JNDI Tomcat Allgemeines EE 0
N WebService WAR-File auf Tomcat-Server Allgemeines EE 1
C WebSocket in Tomcat wirft 404 Allgemeines EE 0
S Eclipse mit Tomcat und Jersey Allgemeines EE 7
S Fehlersuche in Eclipse/Tomcat -> Error-log?? Allgemeines EE 2
S Tomcat und 404 -> von jetzt auf gleich Allgemeines EE 4
L JNDI auf Tomcat mit EE Allgemeines EE 4
E Servlet Tomcat Method Signature Resolution Allgemeines EE 7
J Logging und Monitoring unter Tomcat Allgemeines EE 2
aze Tomcat:Error Pages werden nicht angezeigt Allgemeines EE 4
D JSF JSF 2.0 + ICEFaces + Tomcat 7 Allgemeines EE 3
R Sessionmanagement und Tomcat Allgemeines EE 6
W Tomcat Support mit SLA? Allgemeines EE 3
P Tomcat lädt falsche Datei obwohl richtig angegeben Allgemeines EE 11
N Tomcat funktioniert nach shutdown/startup nicht mehr korrekt Allgemeines EE 9
B Tomcat, JNDI und datasource - Konfiguartion Allgemeines EE 2
JimPanse Tomcat Fehler nach redeploy Allgemeines EE 5
A Java Tomcat findet Website nicht Allgemeines EE 8
S Anfängerfrage Eclipse/Tomcat Allgemeines EE 4
H Installer für Tomcat-Anwendung Allgemeines EE 5
A Tomcat in Eclipse Allgemeines EE 11
T Tomcat: Sessions bleiben zu lange erhalten Allgemeines EE 13
C Tomcat Zugriff auf lokale Dateien Allgemeines EE 2
A Tomcat, Exceptions beim redeploy Allgemeines EE 4
P Hilfe: Tomcat periodischer Absturz Allgemeines EE 5
MQue Tomcat reload Allgemeines EE 4
neurox Tomcat stoppen Allgemeines EE 1
S Unterschied zwischen Tomcat und Application Server? Allgemeines EE 3
MQue Tomcat PermGen Allgemeines EE 7
MQue Tomcat Methodenaufruf Allgemeines EE 3
P Eclipse Tomcat Plugin funktioniert nicht mit externem TC-Server? Allgemeines EE 4
MQue TCP- Verbindung nach Tomcat- Start (global) starten Allgemeines EE 4
reibi Tomcat Proxy eintragen Allgemeines EE 2
P CXF Project auf Tomcat laufen lassen - wie? Allgemeines EE 35
R (TOMCAT] Installation Tomcat auf WinXP Allgemeines EE 8
S Tomcat + Eclipse Allgemeines EE 6
T Security Manager in Tomcat Allgemeines EE 2
S Unterschiedliche Pfade bei Tomcat Allgemeines EE 4
ps EJB3 in Tomcat. das hat selbst mich erstaunt Allgemeines EE 18
B Tomcat Manager - .war Datei hochladen. Einfache Frage Allgemeines EE 5
G Probleme im Tomcat - loading WebappClassLoader Allgemeines EE 3
O ApplicationServer vs. Tomcat Allgemeines EE 5
G Verbindung zu Tomcat Allgemeines EE 15
B Tomcat -> Funktions User Credentials hinterlegen Allgemeines EE 7
B fmt:setBundle => Wo liegt die Properties-Datei im Tomcat? Allgemeines EE 3
U Tomcat Compilierproblem Allgemeines EE 2
A Tomcat -- JSP: komisches Problem Allgemeines EE 11
W Speicher-Problem bei WebApp unter Tomcat, Struts, Hibernate Allgemeines EE 3
M Gelegentlicher Absturz Tomcat Anwendung: PermGen Space Allgemeines EE 6
R Error ServletContextListener auf Tomcat 6 Allgemeines EE 2
Y myFaces 1.2 und Tomcat 5.x / 6.0 Allgemeines EE 9
S tomcat session timeout - und was danach? Allgemeines EE 1
A Tomcat startet nicht, Einstellungsfehler? Allgemeines EE 3
S Auf Datei ausserhalb des Tomcat zugreifen Allgemeines EE 4
S JSP / Tomcat / Eclipse / Unable to compile class for JSP Allgemeines EE 4
E JBoss mit existierendem Tomcat nutzen? Allgemeines EE 4
M JSP: Tomcat: Serverfehler 500 nur beim IE. Allgemeines EE 2
G JSF 1.2 unter Netbeans 6 mit Tomcat 6.0 ->Navigationsprob Allgemeines EE 6
O eclipse - tomcat: Problem bei einfachem Webservice Allgemeines EE 16
L Tomcat Service mit JPDA debugging starten Allgemeines EE 2
J Tomcat: "Unable to get connection, DataSource invalid&q Allgemeines EE 8
A web.xml für Servlet in Tomcat 5.5 erstellen Allgemeines EE 2
F Tomcat: zentraler Class-Ordner? Allgemeines EE 2
A web.xml für Servlet in Tomcat erstellen Allgemeines EE 6
T Tomcat: JNDI + JDBC Problem Allgemeines EE 3
N Zugriff auf Webapp nur für localhost definieren (Tomcat) Allgemeines EE 2
byte Tomcat Deployment Problem (HTTP Status 503) Allgemeines EE 8
H Tomcat, MySQL Allgemeines EE 4
B tomcat verbergen Allgemeines EE 3
M classNotFoundexception vom tomcat Allgemeines EE 10
B Liferay + Tomcat Allgemeines EE 4
K tomcat: session-unabhängiges speichern Allgemeines EE 3
G Tomcat übersetzt nichts mehr Allgemeines EE 6
M tomcat beim booten mit starten Allgemeines EE 4
F Serverdienst in Tomcat implementieren Allgemeines EE 14
J Tomcat mit eigener Session-Implementierung Allgemeines EE 15
V tomcat 6 webserver oder was ist sein Sinn? Allgemeines EE 3
G eigener Tomcat-Connector f. propiet. Protokoll via TCP/IP Allgemeines EE 2
J wsdl-tomcat-AXIS Allgemeines EE 2
G Tomcat unter Eclipse starten Allgemeines EE 9
F Tomcat mit 128 MB Ram Allgemeines EE 9
C Unable to query Tomcat Manager: couldn't connect to host Allgemeines EE 2
A Cronjob mit Tomcat starten ? Allgemeines EE 4
B Connection Poll ohne TomCat Allgemeines EE 5
N Tomcat GWT-Anwendung - An beliebiger Stelle schreiben Allgemeines EE 2
E Tomcat Einstellungen Allgemeines EE 10
B Servlet-Api.jar auf JBoss? (Migration von Tomcat zu JBoss) Allgemeines EE 4
H Eine kurze Verständnisfrage zum Tomcat Allgemeines EE 2
S Hibernate, Tomcat und Eclipse treiben mich zum Wahnsinn. Allgemeines EE 2
F webanwendung läuft nicht auf Tomcat Allgemeines EE 2
M Tomcat, Hibernate, MySQL und die EOFException Allgemeines EE 7
Y Tomcat Thread-Handling Allgemeines EE 2
K Tomcat als Client nutzen Allgemeines EE 2
L Tomcat auf Windows Server 2003 Allgemeines EE 10
T Sysdeo Eclipse Tomcat Plug-in Allgemeines EE 4
H Tomcat in jbuilder mit startup.bat starten Allgemeines EE 5

Ähnliche Java Themen


Oben