Frage

Ich entwickle einen Web-App. Ich möchte in der Lage sein, einige Freunde es sehen zu lassen, andere aber nicht, dass Stolpern auf der URL. Ich wollte eine Zielseite setzen und dann eine einfache Passwort-Box. Sobald das richtige Passwort eingegeben wird, würde ich in der Sitzung aufzeichnen es einfach und die Website wie gewohnt für den Rest der Zeit, die sie den Browser offen zu halten aussetzen.

Gibt es eine standardisierte Möglichkeit, dies zu tun? Ich würde zusätzlichen Code meine Webapp werden, diese zu unterstützen, bin ich sicher nicht, ob es eine eingebaute Möglichkeit, es schon zu tun (ich bin mit Java-Servlets).

Danke

War es hilfreich?

Lösung

Sie können mit Container Managed Authentication Deployment-Deskriptoren unter Verwendung . Dies erfordert kein zusätzlicher Code in Ihrer Seite eines einfachen Login-Formulars erwartet mit einem Eingang und Passwort-Feld, das legt die URL j_security_check. Hier ist ein einfaches Beispiel:

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

Unter der Annahme, dass Sie private Seiten in einem Ordner mit dem Namen /private und die oben Login-Seite befindet sich in /private/login.jsp haben, dann fügen Sie die folgenden Einträge in die web.xml der Webapp:

<security-constraint>
    <web-resource-collection>
        <web-resource-name>Private</web-resource-name>
        <url-pattern>/private/*</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>friends</role-name>
    </auth-constraint>
</security-constraint>

<login-config>
    <auth-method>FORM</auth-method>
    <realm-name>Private</realm-name>
    <form-login-config>
        <form-login-page>/private/login.jsp</form-login-page>
        <form-error-page>/private/error.jsp</form-error-page>
    </form-login-config>
</login-config>

Dann wird in dem servletcontainer, die Sie verwenden, benötigen Sie einen so genannten Realm konfigurieren für Private. Da es unklar ist, welche servletcontainer Sie verwenden, hier ist ein Tomcat 8.0 gezieltes Dokument: Realm-Konfiguration HOW-TO . Sie können es konfigurieren, dass der Benutzername / Passwort-Combo gegen eine XML-Datei oder einer Datenbank oder sogar einem benutzerdefinierten Speicherort zu überprüfen.


Eine ganz andere Alternative ist ein Login-Mechanismus mit Hilfe eines Filter zu ende Sorten, die das Vorhandensein des angemeldeten Benutzers im Sitzungsbereich überprüft. Siehe this und diese Antwort, wie dies zu erreichen.

Andere Tipps

Sie sollten darüber nachdenken, mit einfacher Authentifizierung mit .htaccess

Siehe http://www.elated.com / articles / Passwort-Schutz-your-Seiten-mit-.htaccess /

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top