# JSF2 Authentifizierung



## Tuvshin09 (8. Apr 2010)

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 (8. Apr 2010)

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 (12. Apr 2010)

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 (12. Apr 2010)

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


----------

