# JFS 2 / 403 forbidden - redirect



## mandreo (12. Feb 2010)

Guten Abend,

ich möchte bei bestimmten Seitenaufrufen eine 403 Seite aufrufen oder weiterleiten.

Die Seitenstruktur sieht in etwa so aus (Ordner sind *fett*):

*WebContent*
--login.xhtml
--*admin*
----home.xhtml
----...
--*level1*
----home.xhtml
----...
--*level2*
----home.xhtml
----...

Von der Login-Seite wird je nach Benutzerrolle zu den Seiten weitergeleitet und eine Session gestartet:

```
return "/admin/home.xhtml";
```

Die Benutzerrollen werden einfach durch ein Variable in der UserBean (SessionScoped) gesetzt:

```
/*
 * Userlevel
 * 0 - level1
 * 1 - level2
 * 2 - Admin
 */
private int userLevel = 0;
```

Wenn man jetzt im Browser als nicht angemeldeter User z.B. admin/home.jsf ansteuert, soll eine Weiterleitung zur Login-Seite erfolgen.

Wenn man als angemeldeter User mit Rechten für level1 admin/home.jsf über den Browser ansteuert, soll eine Weiterleitung zu der 403 Seite getätigt werden.

Ich habe versucht dies mit navigation-rules in der faces-config zu regeln, aber diese Regeln gelten wohl nicht, wenn man über den Browser die Seiten direkt ansteuert.

Weiß jemand, wie ich solche Zugangsbeschränkungen in JSF 2 machen kann?

Grüße,
mandreo


----------



## mandreo (12. Feb 2010)

Hab den redirect über einen PhaseListener geregelt, das scheint zu klappen.

Dennoch werde ich das Gefühl nicht los, dass es wohl bessere Authentifizierungslösungen gibt, ich bin scheinbar zu blöde die zu finden.

Wenn jemand ein Tutorial dazu findet, wäre ich dankbar, wenn das gepostet wird.

Grüße,
mandreo


----------



## planetenkiller (12. Feb 2010)

Bei meinen Tests mit Java EE 6 und JSF 2 habe ich Security Constraints verwendet: J2EE Form-based Authentication - O'Reilly Media 

Das ganze geht dann aber nicht mehr über den eigenen Login-Mechanismus, sondern über den des Containers.


----------

