JSF2 Authentifizierung

Tuvshin09

Mitglied
Hallo,
Ich hab ein Problem beim Authentifizierung für mein JSF 2 Projekt.
Eigentlich habe nur 2 einfache Seiten:
1. login.xhtml
2. protected.xhtml
Auf der login.xhtml kann sich ein User mit seinem Nick und PW anmelden. Wenn er sich erfolgreich anmelden kann gelangt er auf protected.xhtml. Ansonsten kommt eine Fehlermeldung oder sonstwas.
Problem ist, wenn man einfach URL von protected.xhtml aufruft, wird diese Seite immer ungeschützt angezeigt. Mein Server ist TomCat 6.24.
Wie kann ich die Authentifizierung bei JSF2 konfigurieren? Ich brauche einfache Beispiele und Tipps.
Danke
Tuvshin.
 

Tuvshin09

Mitglied
Hello.
Nach Internet Recherche hab ich paar Info gefunden und kann jetzt mindestens Resource verstecken. Sogar alles... Mit web.xml kann ich machen (Siehe Code).
[XML]
<web-app>
...
..
<security-role>
<role-name>admin</role-name>
</security-role>
<security-role>
<role-name>customer</role-name>
</security-role>

<security-constraint>
<display-name>Security constraint for the /private folder</display-name>
<web-resource-collection>
<web-resource-name>Protected Area</web-resource-name>
<url-pattern>/xhtml/*</url-pattern>
<!-- If you list http methods, only those methods are protected. -->
<!-- Leave this commented out to protect all access -->
<!--
<http-method>DELETE</http-method> <http-method>GET</http-method>
<http-method>POST</http-method> <http-method>PUT</http-method>
-->
</web-resource-collection>
<auth-constraint>
<!-- Only only administrator and CMS editors to access this area -->
<role-name>admin</role-name>
<role-name>customer</role-name>
</auth-constraint>
</security-constraint>

<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>/xhtml/index.jsf</form-login-page>
<form-error-page>/xhtml/index.jsf</form-error-page>
</form-login-config>
</login-config>

<!--<login-config>
<auth-method>BASIC</auth-method>
<realm-name>Editor Login</realm-name>
</login-config>
-->
</xml>
[/XML]
Jetzt kommt meine nächte Frage?
Wie kann ich die verstckten Resourcen für angemeldeten User freigeben.
Dazu muss ich Bean-Klassen kümmern.
Tips ???
Tuvshin
 

JanHH

Top Contributor
Am besten benutzt Du seam, da ist eine sehr leistungsfähige Authentifizierungs- und Rollen-Verwaltung eingebaut.

Ansonsten hab ich das mal bei einer "reinen" JSF-Anwendung mittels eines Servlet-Filters gelöst. Beim Login wird in der http-Session irgendeine Property ("loggedin" oder so) gesetzt, und das Servlet-Filter guckt, ob diese vorhanden ist, und lässt nur dann die Requests nach geschützten Seiten durch. Ist aber keine schöne Lösung.
 

Tuvshin09

Mitglied
Hallo JanHH
Danke für die Tipps. Deine Feedback hat mir sehr geholfen. :)
Ich habe auch eine hilfreichen Info. gefunden. Falls jemand genau wie mein Problem hätte, sollte er es auch anschauen.
Grüss Tuvshin
Jsfandsecurity
 

Ähnliche Java Themen

Neue Themen


Oben