Question

J'ai une application Web Java. La webapp est packagée dans un fichier war. Ces fichiers war autorisent le contenu statique, qui est directement transmis via HTTP. Pour les servlets de cette guerre, je peux effectuer une authentification HTTP (implémentez-la avec le servlet lui-même). Mais je veux aussi HTTP-auth pour le contenu statique. Comment puis-je m'en rendre compte?

Était-ce utile?

La solution

Créez une classe qui implémente javax.servlet.Filter. Voir L'essentiel des filtres

La méthode principale est doFilter à laquelle sont transmis les objets ServletRequest, ServletResponse et FilterChain. C’est là que vous imposez l’authentification.

Déclarez ensuite votre filtre dans web.xml et un mappage de filtre comme suit (mappe chaque requête)

    <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>

Autres conseils

Placez vos fichiers HTML statiques dans un répertoire et définissez vos contraintes de sécurité dans votre web.xml. Mappez les contraintes sur le rôle approprié.

<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>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top