JSF – implementando filtro para páginas restritas

Estou seguindo a resposta de @BalusC para JSF 2.0: como obter a URL que é inserida na barra de endereços do navegador para restringir as páginas de usuários que não estão conectados.

Filtro:

public class RestrictPageFilter implements Filter{ FilterConfig fc; @Override public void init(FilterConfig filterConfig) throws ServletException { fc=filterConfig; } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest httpreq = (HttpServletRequest) request; HttpServletResponse httpres = (HttpServletResponse) response; if (httpreq.getUserPrincipal() == null) { httpreq.getSession().setAttribute("from", httpreq.getRequestURI()); httpres.sendRedirect("/pages/login.xhtml"); } else { chain.doFilter(request, response); } } @Override public void destroy() { // TODO Auto-generated method stub } } 

web.xml:

   Admin pages /admin/* /restricted/* GET POST   ADMIN     User pages /restricted/* GET POST   ADMIN USER     RestrictPageFilter gov.denis.chanceryweb5.filter.RestrictPageFilter   RestrictPageFilter /restricted/*  

glassfish-web.xml

   ADMIN ADMIN   USER USER  

reino no console do glassfish do gui: insira a descrição da imagem aqui

Ao acessar meu aplicativo da web, no navegador, vejo isso por algum motivo? porque?

insira a descrição da imagem aqui

Você está vendo o diálogo associado ao método de autenticação BASIC.

Atualmente, você tem os elementos login-config do seu arquivo web.xml comentados … para que a configuração não seja aplicada.

Os servidores GlassFish 3 têm uma configuração de login padrão que é usada quando um aplicativo implantado pelo usuário especifica uma restrição de segurança, mas não especifica uma configuração de login …

O efetivo login-config para o seu aplicativo, na verdade, é algo como isto

   BASIC file  

O login-config padrão é especificado em glassfish3/glassfish/domains//config/default-web.xml