Obrigar o usuário

12 respostas
R

Opa, tô aqui denovo :mrgreen:

Gostaria de saber se tem como eu obrigar o usuário, ao logar, a passar por uma página, independente da url que ele colocar. Tem como ??

12 Respostas

Z

Tem. :smiley:

R

Engraçadinho :smiley:

Sério, como faço? :roll:

Rafael_Nunes

Dá uma pesquisada por mapeamento de Servlet

jgbt

Rafaelprp:
Opa, tô aqui denovo :mrgreen:

Gostaria de saber se tem como eu obrigar o usuário, ao logar, a passar por uma página, independente da url que ele colocar. Tem como ??

De uma pesquisada por Filter, aqui mesmo no forum tem exemplos de como implementar.

[]'s

R

Filtros são realmente necessários neste caso, umas simples tags no web.xml não resolvem não ? Estou tentando manter um nível de complexidade baixo, tentando fazer simples…

Valeu,

furutani

Sim. É necessário pois é nele que você vai saber se deve ou não redirecionar o usuário para página de login

Z

Você está usando servlets e JSP somente? Nenhum framework?

R

Retiro o que disse, filtros são simples, e resolveram meus problemas, valeu ! !!

:smiley: :smiley: :smiley: :smiley: :smiley:

J

Se eu entendi bem a sua pergunta, a solução mais robusta é usar a autenticação via realms do tomcat. Daí no próprio web.xml vc define que páginas só podem ser vistas por usuários autenticados, e o tomcat cuida do resto. Pesquise sobre o assunto, vale a pena!

R

Eu já estava usando JDBC Realm, eu só queria fazer isso para poder ir no banco, preencher um usuário e colocar na sessão, mas só queria fazer uma vez, e como o usuário pode logar em qualquer parte do site… Bom, o filtro caiu como uma luva, lá vai o código, pode ser útil pra alguém:

package br.com.dogato.controle;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

import br.com.dogato.persistencia.UsuarioDAO;


public class Filtro implements Filter {

    private ServletContext context = null;

    public void init(FilterConfig config) throws ServletException {
        this.context = config.getServletContext();
	}

    public void destroy() {
    	context = null;
    }

    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
        throws IOException, ServletException {
    
        if (request instanceof HttpServletRequest) {
        	HttpServletRequest req = (HttpServletRequest)request;
            if(req.getSession().getAttribute("usuario") == null){
            	UsuarioDAO dao = new UsuarioDAO();
            	req.getSession().setAttribute("usuario", dao.buscarUsuario(req.getUserPrincipal().getName()) );            	      	
            }           
        }     
        chain.doFilter(request, response);
    
    }
}

Assim, independente da parte do site que meu usuário logar, ele terá um usuário preenchido na sessão :D:D:D

Mas valeu a resposta, abraço.

J

Gostei!
Vou adotar! :wink:

saoj

Rafaelprp:
Filtros são realmente necessários neste caso, umas simples tags no web.xml não resolvem não ? Estou tentando manter um nível de complexidade baixo, tentando fazer simples…

Dá uma olhada no Mentawai que vc consegue fazer isso sem nem pensar.

Tem suporte a Redirect after Login e autorização tb.

:wink:

Criado 28 de julho de 2005
Ultima resposta 30 de jul. de 2005
Respostas 12
Participantes 7