Como listar o usuario logado?

7 respostas
Washington_Wiltenbur

Boa tarde,

Gostaria de listar os dados do usuario logado… estou usando o VRaptor… as minhas tabelas estão todas relacionadas com a tabela usuario e no meu formulário JSP eu consigo gravar os dados com o id do usuario logado:

<input type="hidden" name="categoria.usuario.login" value="<%=request.getRemoteUser()%>"/>

O Problema é como listar os dados somente com o usuario logado???

Estava pensando em armazenar o usuario da sessão em uma variavel e depois eu passar esta variável para a query???
Alguém sabe se isso é possivel???

Exemplo:

public class CategoriaDao extends Dao{

public CategoriaDao(Session session) {

super(session, Categoria.class);

}

private HttpServletRequest request;

public List usuarioLogado(String logado){

logado = this.request.getRemoteUser();

String hql = “SELECT c FROM Categoria as c WHERE c.usuario.login = :logado”;

Query query = getSession().createQuery(hql);

query.setParameter(logado”, logado);

return query.list();

}

}

na minha logica eu fiz assim:

//Classe CategoriaLogic

@Logic(parameters=“logado”)
public void listaCategoria(String logado){

try{

this.daoFactory.beginTransaction();
this.categoriaDao = this.daoFactory.getCatDao();

if(logado != null)
categorias = this.categoriaDao.usuarioLogado(logado);

this.daoFactory.commit();

}catch(NullPointerException e){

System.err.print(“erro ao executar listagens” + e.getMessage());

}

}

aqui não rolou…

Alguém pode me ajudar???

7 Respostas

alexlima72

Eu fiz com Httpsession direto na pagina jsp.
Vc grava todos os dados na session e joga nas variaveis e popula nas label’s…
Não sei se seria a melhor solução mas me atendeu…é apenas uma dica

Washington_Wiltenbur

tem como vc postar pra mim p seu código alexlima72 ???

marciobarroso

Como você esta usando VRaptor, você injeta o HTTPSession na sua classe Logic :

se login e senha do usuario estão corretos faça
você seta seu usuario na sessão
senão faça
envia mensagem de erro informando que os dados de login estão errados.
fim-se

Essa será a base para toda a sua aplicação, uma vez que para cada Logic chamada na aplicação, você verifica se o usuário esta logado. Se estiver logado, vc processa normalmente a requisição, senão, envia o usuario para a página de login. Mas isso é válido para somente as Logics que necessitam de login.

Existem métodos melhores para gerenciamento de segurança da aplicação, mas como o que vc esta fazendo parece ser somente uma aplicação para aprendizado, este método pode servir.

Só não se esqueça que no logout da aplicação, vc deve remover o usuario da sessão.

[]'s

alexlima72

Blz,

A pagina de login…
a redirect:

coloca os if’s da vida para verificar se tem user om este nome se a senha bate se nao é nada nulo…etc se passar por tudo:

session.setAttribute("usuario", "ok");//uma string somente para dizer q user ok está logado
					session.setAttribute("user_session", rs1.getString("user"));//o campo do nome do user
								
					response.sendRedirect("menu.jsp");

Na pagina redirecionada vc coloca por exemplo:

<td width="133"><div align="right" class="style23"><em> <a>Usuário : </a> ||</em> <em><strong><a><%=session.getAttribute("user_session") %></a></strong></em></div></td>

Espero ter ajudado…

Washington_Wiltenbur

onde eu coloco isso:

session.setAttribute(“usuario”, “ok”);//uma string somente para dizer q user ok está logado
session.setAttribute(“user_session”, rs1.getString(“user”));//o campo do nome do user

response.sendRedirect(“menu.jsp”);

Na pagina redirecionada vc coloca por exemplo:

não entendi direito… vc pode me explicar???

Washington_Wiltenbur

alguém pode me responder???

marciobarroso

Isso q foi postado é para uma aplicação usando somente servlet.

Como vc disse que esta usando VRaptor, deve fazer como eu te falei.

[]'s

Criado 5 de março de 2008
Ultima resposta 7 de mar. de 2008
Respostas 7
Participantes 3