package gcom.gui.util.validacao; 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.RequestDispatcher; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; /** * Filtro que procura em todos os requests do sistema se algum caracter invalido * est� sendo passado * * @author Rodrigo Silveira */ public class FiltroVerificarCaracteresEspeciais extends HttpServlet implements Filter { private FilterConfig filterConfig; private static final long serialVersionUID = 1L; public void init(FilterConfig filterConfig) { setFilterConfig(filterConfig); } public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws ServletException, IOException { try { HttpServletRequest requisicao = (HttpServletRequest) request; Enumeration enumeration = requisicao.getParameterNames(); Pattern titleFinder = Pattern .compile("[a-zA-Z0-9/.]*((\\-)?)[a-zA-Z0-9/.]*"); boolean achouCaracterEspecial = false; while (enumeration.hasMoreElements()) { String valor = requisicao.getParameter((String) enumeration .nextElement()); System.out.println(valor); Matcher m = titleFinder.matcher(valor); if (!m.matches()) { achouCaracterEspecial = true; RequestDispatcher rd = filterConfig .getServletContext() .getRequestDispatcher( "/jsp/util/erro_caracteres_especiais_invalidos.jsp"); rd.forward(request, response); break; } } if (!achouCaracterEspecial) { filterChain.doFilter(request, response); } } catch (ServletException sx) { throw sx; } catch (IOException iox) { throw iox; } } public void destroy() { } public FilterConfig getFilterConfig() { return filterConfig; } public void setFilterConfig(FilterConfig filterConfig) { this.filterConfig = filterConfig; } }