Java forms-auth mit j_security_check und Glassfish

Ich bin das eintauchen meinen Zeh in den trüben Gewässern von Java und ich arbeite durch die PackPub Java ee 6 Mit Netbeans7 buchen . Eines der frühen Beispiele ist die Formularauthentifizierung, die beinhaltet das einrichten der deployment-Deskriptor (web.xml) mit einem Sicherheits-Rolle 'admin' und eine Einschränkung. Es begleitet Sie dann durch die Glassfish descriptor durch diese Zuordnung der Rollen zu den neuen Gruppen und dann unter Verwendung des Glassfish-Konsole zum erstellen neuer Benutzer in diese Gruppen.

Wenn ich versuche eine Seite zuzugreifen, die innerhalb dieses geschützten Seite, die ich bin präsentiert mit der login-Seite wie erwartet, aber mein login funktioniert nicht. Auch wenn ich weiß, ich bin putting in gültige Anmeldeinformationen erstellt, in der glassfish-Konsole, bekomme ich noch meine login-Fehler-Seite (gerendert auf den j_security_check URL).

Die login-Seite ist als basic, wie es kommt:

    <%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Log in to view secure content</title>
    </head>
    <body>
        <h1>Log in</h1>
        <form action="j_security_check" method="POST">
            <table border="0">
                <tbody>
                    <tr>
                        <td slign="right">Username: &nbsp;</td>
                        <td><input type="text" name="j_username" value="" /></td>
                    </tr>
                    <tr>
                        <td slign="right">Password: &nbsp;</td>
                        <td><input type="password" name="j_password" value="" /></td>
                    </tr>
                    <tr>
                        <td></td>
                        <td><input type="submit" value="Login" /></td>
                    </tr>
                </tbody>
            </table>

        </form>
    </body>
</html>

Habe ich nicht konfiguriert etwas, und es ist wahrscheinlich wirklich etwas basic, aber das Buch nicht hilft, Fragen wie diese, so fragte mich, ob ich könnte einige Zeiger auf, wo um das Debuggen zu starten oder zu diagnostizieren das problem.

Meine web.xml ist:

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <security-constraint>
        <display-name>Admin Pages</display-name>
        <web-resource-collection>
            <web-resource-name>Administrative pages</web-resource-name>
            <description/>
            <url-pattern>/admin/*</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <description/>
            <role-name>Admin</role-name>
        </auth-constraint>
    </security-constraint>
    <login-config>
        <auth-method>FORM</auth-method>
        <realm-name>file</realm-name>
        <form-login-config>
            <form-login-page>/login.jsp</form-login-page>
            <form-error-page>/loginerror.jsp</form-error-page>
        </form-login-config>
    </login-config>
    <security-role>
        <description>Administrators</description>
        <role-name>Admin</role-name>
    </security-role>
    <security-role>
        <description>public user</description>
        <role-name>User</role-name>
    </security-role>
</web-app>

glassfish-web.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd">
<glassfish-web-app error-url="">
  <security-role-mapping>
    <role-name>Admin</role-name>
    <group-name>Admin</group-name>
  </security-role-mapping>
  <class-loader delegate="true"/>
  <jsp-config>
    <property name="keepgenerated" value="true">
      <description>Keep a copy of the generated servlet class' java code.</description>
    </property>
  </jsp-config>
</glassfish-web-app>

Habe ich doppelt geprüft, dass in der Glassfish-Konsole, ich bin Bearbeiten

Configuartions|Security|Realms|file

ist und dass mein neuer Benutzer hat eine Gruppe-Liste von 'Admin'

Dank

  • haben Sie überprüft, die key-Datei?
  • Nein, wo ist das? Ich bin gerade erst begonnen, so würde nicht wissen, wo/wie
  • wenn Sie nicht geändert haben, es in der admin-Konsole sein Pfad ist domain-dir/config/keyfile. Öffnen Sie es und überprüfen, ob es Ihre Nutzer enthält.
  • Vielleicht ist die Antwort zu this questin könnte Ihnen helfen, so gut es mir getan hat?
InformationsquelleAutor LDJ | 2012-08-13
Schreibe einen Kommentar