IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tomcat et TomEE Java Discussion :

Filtre specifique pour PersistentFacesServlet


Sujet :

Tomcat et TomEE Java

  1. #1
    Membre habitué
    Avatar de jeha
    Inscrit en
    Octobre 2005
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 127
    Points : 193
    Points
    193
    Par défaut Filtre specifique pour PersistentFacesServlet
    Bonjour,

    comment on peut imposer un filtre specifique comme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@! ...
    sur l'URL de l'application pour la servlet PersistentFacesServlet.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
      <servlet>
        <servlet-name>Persistent Faces Servlet</servlet-name>
        <servlet-class>com.icesoft.faces.webapp.xmlhttp.PersistentFacesServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>Persistent Faces Servlet</servlet-name>
        <url-pattern>*.iface</url-pattern>
        <url-pattern>*.jspx</url-pattern>
        <url-pattern>/xmlhttp/*</url-pattern>
        <url-pattern>/faces/*</url-pattern>
        
      </servlet-mapping>

    merci

  2. #2
    Membre habitué
    Avatar de jeha
    Inscrit en
    Octobre 2005
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 127
    Points : 193
    Points
    193
    Par défaut
    bonjour,

    bon la solution est d'ajouter un filter dans le fichier web.xml

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
      <filter>
      	<filter-name>UrlSecurityFilter</filter-name>
      	<filter-class>ma.com.UrlSecurityFilter</filter-class>
      </filter>
     
      <filter-mapping>
      	<filter-name>UrlSecurityFilter</filter-name>
      	<servlet-name>Persistent Faces Servlet</servlet-name>
      	<servlet-name>Faces Servlet</servlet-name>
      </filter-mapping>

    pour le code du filter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
     
     
    package ma.com.servlet;
     
    import java.io.IOException;
    import java.util.Enumeration;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
     
    import javax.servlet.Filter;
    import javax.servlet.FilterChain;
    import javax.servlet.FilterConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    import javax.servlet.http.HttpServletRequest;
     
    public class UrlSecurityFilter implements Filter {
     
    	private static final String CHECK_URL_PATTERN = "[\\<\\>\\\"\\'\\%\\;\\(\\)\\+]";
     
    	public void destroy() {
    	}
     
    	public void doFilter(ServletRequest req, ServletResponse resp,
    			FilterChain chain) throws IOException, ServletException {
     
    		HttpServletRequest httpReq = (HttpServletRequest) req;
     
    		boolean isValidUrl = checkUrl(httpReq);
     
    		if (isValidUrl) {
    			chain.doFilter(req, resp);
    		} else {
    			debugRequestInfos(httpReq);
    		}
    	}
     
    	public void init(FilterConfig config) throws ServletException {
     
    	}
     
    	private void debugRequestInfos(HttpServletRequest httpReq) {
    		System.out.println(">>>>>>>>>>>>> getRequestURI : " + httpReq.getRequestURI());
    		System.out.println(">>>>>>>>>>>>> getContextPath : " + httpReq.getContextPath());
    		System.out.println(">>>>>>>>>>>>> getPathTranslated : " + httpReq.getPathTranslated());
    		System.out.println(">>>>>>>>>>>>> getPathInfo : " + httpReq.getPathInfo());
    		System.out.println(">>>>>>>>>>>>> getQueryString : " + httpReq.getQueryString());
    		System.out.println(">>>>>>>>>>>>> getRequestURL : " + httpReq.getRequestURL());
     
    		System.out.println("----");
     
    		for (Enumeration<?> e = httpReq.getHeaderNames() ; e.hasMoreElements() ; ) {
    			String headerName = (String) e.nextElement();
    			String headerValue = httpReq.getHeader(headerName);
     
    			System.out.println("+++++++ '" + headerName + "' = '" + headerValue + "'");
    		}
     
    	}
     
    	private boolean checkUrl(HttpServletRequest httpReq) {
    		String uri = httpReq.getRequestURI();
     
    		Pattern p = Pattern.compile(CHECK_URL_PATTERN);
     
    		Matcher matcher = p.matcher(uri);
     
    		boolean result = ! matcher.find();
     
    		return result;
    	}
     
    }

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/11/2006, 15h30
  2. [Cisco] Ouverture de port specifique pour du broadcast
    Par Yannos94 dans le forum Développement
    Réponses: 2
    Dernier message: 09/01/2006, 10h16
  3. filtre séparable pour une image
    Par tlemcenvisit dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 31/05/2005, 16h45
  4. Creation d'un filtre directshow pour Matrox Orion
    Par Greutzeb dans le forum DirectX
    Réponses: 5
    Dernier message: 29/10/2004, 13h27
  5. []filtre sepia pour les images
    Par nabil dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 27/01/2004, 20h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo