Boa tarde galera !
Estou desenvolvendo uma aplicação web em Java. No momento estou fazendo o login e surgiram algumas dúvidas de como restringir o acesso do usuário e como manter os dados do usuário na sessão.
Andei vendo alguns tutoriais para fazer isto utilizando o VRaptor e me deparei com o seguinte exemplo:
(Apenas um trecho do exemplo)
@Entity
public class Usuario {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String nome;
private String email;
private String senha;
// getters e setters
}
@Component
@SessionScoped
public class UserSession {
private Usuario user;
public boolean isLogged() {
return user != null;
}
public void logout() {
user = null;
}
// get e set
}
Minhas dúvidas tem o foco em segurança.
Esse UserSession que ficara guardado na sessão pelo VRaptor é realmente seguro ?
É seguro guadar a entidade Usuario no UserSession em vez de guardar apenas um identificador do usuário? E qnd necessário ir buscar o usuário no banco de dados. (visto que através da entidade é possível acessar a senha do usuário)
É possível alguém de fora ter acesso aos dados que eu salvo na sessão ?
Vi alguns tutoriais utilizando o SpringSecurity também e gostaria de saber quais são as principais vantagens de se utilizar o SpringSecurity para fazer esse controle de acesso em vez do VRaptor.
Agradeço para quem puder me ajudar, respondendo as perguntas ou passando algum material que me ajude a implementar o login de forma segura.
Muito Obrigado !