Frage

Ich habe ein Java-Webapp. Die Webapp ist als Krieg-Datei gepackt. Diese Krieg Datei erlaubt statische Inhalte, die direkt über HTTP ausgeliefert. Für Servlets in diesem Krieg ich eine HTTP-Authentifizierung machen (implementieren sie mit dem Servlet selbst). Aber ich mag auch HTTP-Auth für den statischen Inhalt. Wie kann ich erkennen, das?

War es hilfreich?

Lösung

Erstellen Sie eine Klasse, die javax.servlet.Filter implementiert. Siehe The Essentials of Filter

Die wichtigste Methode ist doFilter dass die ServletRequest übergeben wird, ServletResponse und filter Objekte. Das ist, wo Sie die Authentifizierung erzwingen.

Dann wird Ihren Filter in web.xml und einen Filter-Mapping erklären, wie folgend (Karten zu jeder Anfrage)

    <filter>
            <filter-name>Authentication Filter</filter-name>
            <filter-class>
                    com.nfsdsystems.security.filters.AuthenticationFilter</filter-class>
    </filter>
    <filter-mapping>
            <filter-name>Authentication Filter</filter-name>
            <url-pattern>/*</url-pattern>
    </filter-mapping>

Andere Tipps

Setzen Sie Ihre statischen HTML-Dateien in einem Verzeichnis und die Sicherheitseinschränkungen in Ihren web.xml definieren. Ordnen Sie die Einschränkungen der entsprechenden Rolle.

<security-constraint>
        <display-name>securedResources</display-name>
        <web-resource-collection>
            <web-resource-name>securedRes</web-resource-name>
            <url-pattern>/secured/*</url-pattern>
            <http-method>GET</http-method>
            <http-method>PUT</http-method>
            <http-method>HEAD</http-method>
            <http-method>TRACE</http-method>
            <http-method>POST</http-method>
            <http-method>DELETE</http-method>
            <http-method>OPTIONS</http-method>
        </web-resource-collection>
        <auth-constraint>
            <description>
            authenticatedUser_securedRes</description>
            <role-name>authenticatedUsed</role-name>
        </auth-constraint>
    </security-constraint>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top