JSF Redirect to Login-Page

sebastianb

Erfahrenes Mitglied
Hallo zusammen,

ich bin gerade dabei eine kleine Webapp zu bauen, die einen gesicherten Bereicht besitzt. Um diesen Bereich zu schützen benutze ich die Funktionen vom Glassfish AS und habe hierzu einen eigenen Realm (userauth) angelegt.

In meiner Webapp habe ich dann folgendes Definiert:

web.xml
Java:
<security-constraint>
        <display-name>Constraint1</display-name>
        <web-resource-collection>
            <web-resource-name>protected</web-resource-name>
            <description/>
            <url-pattern>/catalog/sec/*</url-pattern>
            <http-method>GET</http-method>
            <http-method>PUT</http-method>
            <http-method>HEAD</http-method>
            <http-method>POST</http-method>
            <http-method>OPTIONS</http-method>
            <http-method>TRACE</http-method>
            <http-method>DELETE</http-method>
        </web-resource-collection>
        <auth-constraint>
            <description/>
            <role-name>ADMINISTRATORS</role-name>
            <role-name>USERS</role-name>
        </auth-constraint>
    </security-constraint>
    <login-config>
        <auth-method>FORM</auth-method>
        <realm-name>userauth</realm-name>
        <form-login-config>
            <form-login-page>/login.xhtml</form-login-page>
            <form-error-page>/error.xhtml</form-error-page>
        </form-login-config>
    </login-config>
    <security-role>
        <description/>
        <role-name>USERS</role-name>
    </security-role>
    <security-role>
        <description/>
        <role-name>ADMINISTRATORS</role-name>
    </security-role>


Wie hier zu erkennen ist benutze ich den Auth-Type Form. Zusätzlich habe ich die jeweiligen Login- und Error-Seiten angegeben. Soweit so gut funktioniert auch alles wunderbar und nach einen Login werden die Seiten in /sec/* auch korrekt angezeigt. Navigiere ich aber im Browser direkt zu diesen Seiten sollte ich eigentlich zur Login-Seite redirected werden, jedoch wird mir lediglich eine leere Seite angezeigt. Benutze ich den Auth-Type Basic kommt direkt ein Login-Popup. Hat jemand eine Ahnung wie das am besten realisieren könnte?

Viele Grüße und besten Dank.

Sebastian
 

sebastianb

Erfahrenes Mitglied
So ich habe eben gesehen, dass ich anscheinend doch korrekterweise auf die Login-Seite umgeleitet werde, jedoch wird wie im Screenshot (Anhang) zu sehen ist die Form nicht korrekt gerendert.

Edit:

Ich habe eben die Login-Seite mit normalen html-tags umgeschrieben und nun läufts.

Code:
<html>
    <head>
        <title>Login</title>
    </head>
    <body>

        <h1>Login Page</h1>
        <hr />

        <form method="post" value="Login" action="j_security_check">
            <input type="text"  name="j_username" />
            <input type="password" name="j_password" />
            <input type="submit" value="test" />
        </form>

    </body>
</html>
 

Anhänge

  • loginform.png
    loginform.png
    74,3 KB · Aufrufe: 71
Zuletzt bearbeitet: