Question

Merci à tous à l'avance -

Comment pourrais-je aller sur la désactivation de l'accès via le navigateur par filetype?

Par exemple, si je voulais désactiver tous les accès aux fichiers .xml comment pourrais-je aller sur le faire?

Merci

Était-ce utile?

La solution

Pour autant que je sais qu'il n'y a pas de solution simple pour cela. A la fin de cette post, il est expliqué comment vous pouvez utiliser

Autres conseils

Je voulais une réponse à cette moi-même, et n'a pas été satisfait de la réponse JDBCRealm.

Par défaut, les dossiers cachés « WEB-INF » et « META-INF » sont codés en dur dans la logique des ressources statique, en utilisant le même mécanisme semble excessivement difficile. Il faudrait remplacer ou modifier une combinaison de DefaultServlet , StandardContext et StandardContextValve . Il est un gâchis.

Mais il y a deux façons simples que j'ai essayé le filtrage qui permettent de réaliser que vous êtes après.

Vous pouvez écrire un filtre Servlet générique pour retourner des erreurs 404 pour tout fichier correspondant à une liste. Vous pourriez installer cette liste en tant Environnement Entrées en context.xml, dans un fichier sur le classpath, stocké dans une base de données, ou quel que soit votre préférence (même en tant que chaînes codées en dur, si vous êtes une sorte de masochiste).

Valve (Tomcat spécifique)

Tomcat Vannes accomplissent à peu près la même chose que les filtres, mais à un niveau inférieur. Ils ne font pas partie du Servlet Spec , de sorte que votre application ne sera pas en portable à d'autres conteneurs Servlet. De plus, dans mes expériences avec cela, l'envoi de 404 réponses ne vont pas dans le même canal que 404 réponses envoyées normalement dans votre application (par exemple, si vous personnalisés de configuration 404 pages ou gestionnaires, ils ne sont pas utilisés quand un 404 rendement d'une vanne )

Il y a même plus simple. Vous venez de rediriger toutes les requêtes avec l'extension spécifique à une servlet vide.

Comme ceci:

<servlet-mapping>
   <servlet-name>Empty Servlet</servlet-name>
   <url-pattern>*.xml</url-pattern>
</servlet-mapping>

Cela ne fonctionne pas avec Tomcat qui n'accepte pas servlet-mapping sans déclaration de servlet correspondante. Je recommande simple ErrorServlet ecriture qui envoie 404 systématiquement comme:

package com.yourpackage;

public class ErrorServlet extends HttpServlet{
  public ErrorServlet(){
  }
  public void service(HttpServletRequest request, HttpServletResponse response){
    response.sendError(HttpServletResponse.SC_NOT_FOUND);
  }
}

Ajoutez ensuite la configuration correspondante dans le fichier web.xml:

<servlet>
  <description>Servlet that displays a 404</description>
  <display-name>error</display-name>
  <servlet-class>com.yourpackage.ErrorServlet</servlet-class>
</servlet>
<servlet-mapping>
   <servlet-name>error</servlet-name>
   <url-pattern>*.xhmtl</url-pattern>
</servlet-mapping>
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top