Servlet Filter - não reconhece alguns métodos

Pessoal to precisando restringir acessos a diretórios e urls, to iniciando isso agora e to fazendo por filter.
criei uma classe que implementa filter.
Pesquisei e achei alguns métodos que me ajudariam:

request.getServletPath().endsWith()

porém ele diz que não existe esse método getServletPath…
fiz todos imports necessários, de Request, Response…etc…mesmo assim fica vermelho dizendo que não existe.

public class Security implements Filter{


  public void doFilter(ServletRequest request, ServletResponse response,
    FilterChain chain)
    throws IOException, ServletException {
    if(request.getServletPath().endsWith("inicio.jsf"){

      } 
  }
}

problema que diz que não existe o método que eu preciso pra verificar qual foi a url que está tentando acessar…
Alguem poderia ajudar…

Você pode fazer um cast de ServletRequest para HttpServletRequest, e tentar novamente. De fato, não existe esse método “getServletPath” em ServletRequest. Como seu ServletRequest é muito provavelmente um HttpServletRequest, você até pode tentar o cast.

HttpServletRequest.getServletPath

Acho q o melhor, ainda seria vc não colocar no corpo do filtro quais páginas deseja filtrar (e se elas mudarem com o decorrer do desenvolvimento? Vc não vai querer recompilar, vai?), e sim, no web.xml. Assim, vc deixa mais “solta” sua aplicação, e filtra as páginas certas.

Pra isso, coloca as páginas dentro de uma pasta qualquer (ex.: aplicacao/protegida), e faz o teu filtro filtrar só aplicacao/protegida/*

[quote=thingol]Você pode fazer um cast de ServletRequest para HttpServletRequest, e tentar novamente. De fato, não existe esse método “getServletPath” em ServletRequest. Como seu ServletRequest é muito provavelmente um HttpServletRequest, você até pode tentar o cast.

HttpServletRequest.getServletPath

[/quote]
valeu o cast funcionou…

[quote=asaudate]Acho q o melhor, ainda seria vc não colocar no corpo do filtro quais páginas deseja filtrar (e se elas mudarem com o decorrer do desenvolvimento? Vc não vai querer recompilar, vai?), e sim, no web.xml. Assim, vc deixa mais “solta” sua aplicação, e filtra as páginas certas.

Pra isso, coloca as páginas dentro de uma pasta qualquer (ex.: aplicacao/protegida), e faz o teu filtro filtrar só aplicacao/protegida/*[/quote]

sim…não vou tratar cada página não, o exemplo acima foi só pra desmonstrar que eu não estava conseguindo usar o método, será tratado por diretório…
valeu…