Dúvida!

Bom dia a todos!

Bem fiz sisteminha de login e senha e tudo funcionando perfeitamente. O que acontece é que queria implementa-lo um pouco, fazendo com que por exemplo usuário com nível de acesso 1 não pudesse ver gráficos. A dúvida é, como eu resgato os atributos do usuário quando ele se loga, por exemplo, tenho o usuário joão com senha 1234, ele se loga, como resgatar o atributo “nível” do joão?

Segue como foi feito o sistema de autenticação:

UsuarioDAO

public class UsuarioDAO {
	private Connection connection;

	public UsuarioDAO() {
		dao = new DAO<Usuario>(JPAUtil.getEntityManager(), Usuario.class);

		try {
			connection = new ConnectionFactory().getConnection();
		} catch (SQLException e) {
			throw new RuntimeException(e);
		}
	}
//Alguns metodos de acesso ao banco ...

        public boolean existeUsuario(Usuario usuario) {

		if (usuario == null) {
			throw new IllegalArgumentException("Usuário não deve ser nulo");
		}

		try {
			PreparedStatement stmt = this.connection
					.prepareStatement("select * from usuarios where login = ? and senha = ?");
			stmt.setString(1, usuario.getLogin());
			stmt.setString(2, usuario.getSenha());

			ResultSet rs = stmt.executeQuery();

			boolean encontrado = rs.next();

			rs.close();
			stmt.close();

			return encontrado;

		} catch (SQLException e) {
			throw new RuntimeException(e);
		}
	}

Método que efetua o Login

	@RequestMapping("/efetuaLogin")
	public String efetuaLogin(Usuario usuario, HttpSession session) {
		if (new UsuarioDAO().existeUsuario(usuario)) {
			session.setAttribute("usuarioLogado", usuario);

			return "inicio";
		}
		return "redirect:login";
	}

E o que tentei fazer, curioso que da maneira que fiz consigo resgatar o login e a senha, apenas, qualquer outro atributo do usuario retorna um valor null. Neste caso tentei resgatar o nome, e no console voltou Null, se eu coloco System.out.println(usuario.getLogin) ele retorna o login corretamente.

	@RequestMapping("/viewGrafico")
	public String viewGrafico(Usuario usuario, HttpServletRequest request) {

		usuario = (Usuario) request.getSession().getAttribute("usuarioLogado");

		System.out.println(usuario.getNome());

		return "/controle/graficos";
	}

Alguém pode me ajudar? Desde já agradeço!

    @RequestMapping("/efetuaLogin")  
    public String efetuaLogin(Usuario usuario, HttpSession session) {  
        if (new UsuarioDAO().existeUsuario(usuario)) {  
            session.setAttribute("usuarioLogado", usuario);  
      
            return "inicio";  
        }  
        return "redirect:login";  
    }  

O objeto usuário que você atribui a sessão não tem os valores dos niveis.
Seria interessante você verificar se o usuário existe e depois chamar um novo método do seu dao
para popular esse seu objeto por completo.

[]'s

Por favor, não duplique tópicos:

Na dúvida sobre qual fórum abrir, abra em qualquer um e peça para a moderação conferir se o local está correto.

Além disso, procure dar um título descritivo para seu tópico. O título “Dúvida”, além de óbvio, não ajuda nada a quem está lendo a lista de tópicos.

Esse tópico será trancado.