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!