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.
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.
[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…