problemas com filter - JSF/Hibernate
06/02/2013
0
Bom dia!! Fiz recentemente assinatura de Java e precisei de alguns tutoriais de vcs de filter, porém estou tendo problemas...alguem poderia me ajudar?
Eu consigo logar com usuario e senha q digito, mas o filter não está funcionando. Eu consigo ir direto para página index.jsf sendo que nao era pra deixar
Ou até mesmo se eu logo e depois volto para pagina de login e volto para index de novo, ele aceita .. ou seja..nao está filtrando
Alguma ajuda?
[b]loginBean[/b]
[b]UsuarioDaoImpl[/b]
[b]AuthFilter[/b]
Eu consigo logar com usuario e senha q digito, mas o filter não está funcionando. Eu consigo ir direto para página index.jsf sendo que nao era pra deixar
Ou até mesmo se eu logo e depois volto para pagina de login e volto para index de novo, ele aceita .. ou seja..nao está filtrando
Alguma ajuda?
[b]loginBean[/b]
@ManagedBean(name="loginBean") @SessionScoped public class LoginBean { private Usuario usuario; public LoginBean() { if (this.usuario == null) { this.usuario = new Usuario(); } } public void redirecionar() throws IOException{ FacesContext faces = FacesContext.getCurrentInstance(); ExternalContext context = faces.getExternalContext(); context.redirect("/ControleChanges/index.jsf"); } public void login(ActionEvent actionEvent) throws IOException { RequestContext context = RequestContext.getCurrentInstance(); FacesMessage msg = null; boolean loggedIn = false; UsuarioDao usuarioDao = new UsuarioDaoImpl(); usuario = usuarioDao.buscarPorUsuario(usuario); if (usuario != null) { loggedIn = true; FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("user", "ok"); redirecionar(); msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "Welcome", usuario.getUsername()); //"Usuario" } else { loggedIn = false; msg = new FacesMessage(FacesMessage.SEVERITY_WARN, "Login Error", "Invalid credentials"); } FacesContext.getCurrentInstance().addMessage(null, msg); context.addCallbackParam("loggedIn", loggedIn); } public Usuario getUsuario() { if (usuario == null){ usuario = new Usuario(); } return usuario; } public void setUsuario(Usuario usuario) { this.usuario = usuario; } }
[b]UsuarioDaoImpl[/b]
public class UsuarioDaoImpl implements UsuarioDao { @Override public Usuario buscarPorUsuario(Usuario usuario) { Session session = HibernateUtil.getSessionFactory().openSession(); String sql = "select u from Usuario u where username=:user and password=:pass"; Query query = session.createQuery(sql); query.setString("user", usuario.getUsername()); query.setString("pass", usuario.getPassword()); return (Usuario) query.uniqueResult(); } }
[b]AuthFilter[/b]
public class AuthFilter implements Filter { public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest rq = (HttpServletRequest) request; HttpServletResponse rp = (HttpServletResponse) response; boolean auth = rq.getSession().getAttribute("user") != null; if (!auth && !rq.getRequestURL().toString().contains("login.jsf")) { rp.sendRedirect(rq.getContextPath() + "/login.jsf"); } else { try { chain.doFilter(request, response); } catch (Exception e) { e.printStackTrace(); } } } public void destroy() { } public void init(FilterConfig config) throws ServletException { } }
Rafael Rocha
Curtir tópico
+ 0
Responder
Posts
14/02/2013
Vanessa Fortes
Já me deparei com este problema, mas quando eu fechava meu navegador e abria novamente não acessava a nenhuma página sem estar logado.
Faça esse teste e veja se funciona, porque ai não é problema do filter, é nas politicas de privacidade do navegador.
Faça esse teste e veja se funciona, porque ai não é problema do filter, é nas politicas de privacidade do navegador.
Responder
Clique aqui para fazer login e interagir na Comunidade :)