# JSF navigation rule mit security-constraint



## jpond (20. Mai 2014)

Hallo Zusammen,
vielleicht könnt ihr mich helfen mit meiner Frage zur Navigation in JSF.

Grundsätzlich möchte, dass meine Applikation bei der Eingabe einer URL (z.B. Lesezerichen) prüft, ob ein Benutzer eingeloggt ist. Sollte es nicht der fall sein, wird man auf dr Login-Seite weitergeleitet. Nach erflgreiches login soll die Apllication zurück zur am Anfang aufgeforderte Seite zurück.

Wie kann ich das realisieren? Oder wie kann ich die weiterleitung zur Login-Seite abfangen (Phase oder Event) und die geforderte URL zwischenspeichern?

Der Server ist *glassfish 4.0* und für die Authentifizierung nutze *jdbcRealm*.
Die Benutzergruppen und -rollen sind wie folgt:
[XML]
<security-role-mapping>
		<role-name>Administrator</role-name>
		<group-name>Administrators</group-name>
	</security-role-mapping>
	<security-role-mapping>
		<role-name>User</role-name>
		<group-name>Administrators</group-name>
		<group-name>Users</group-name>
	</security-role-mapping>
[/XML]

[XML]
	<security-constraint>
        <web-resource-collection>
            <web-resource-name>Protected Login Area</web-resource-name>
            <url-pattern>/</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>User</role-name>
        </auth-constraint>
        <user-data-constraint>
            <transport-guarantee>CONFIDENTIAL</transport-guarantee>
        </user-data-constraint>
    </security-constraint>

    <security-constraint>
        <web-resource-collection>
            <web-resource-name>Protected Admin Area</web-resource-name>
            <url-pattern>/admin/*</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>Administrator</role-name>
        </auth-constraint>
        <user-data-constraint>
            <transport-guarantee>CONFIDENTIAL</transport-guarantee>
        </user-data-constraint>
    </security-constraint>

 <login-config>
        <auth-method>FORM</auth-method>
        <realm-name>myProjectJdbcRealm</realm-name>
        <form-login-config>
            <form-login-page>/login/index.jsf</form-login-page>
            <form-error-page>/login/index.jsf</form-error-page>
        </form-login-config>
    </login-config> 
[/XML]

Danke


----------

