tenho estado envolvido num projecto com o Seam, mas estou com dificuldades em fazer o login automático.
O objectivo é quando a pagina http://localhost:8080/Projecto é carregada, em vez de o utilizador ter de fazer login para poder editar registos, este login é feito automaticamente com o login de sessao do windows.
Este projecto foi gerado pelo seam-gen, com uma base de dados já existente.
Olá amigo, vou tentar dar uma idéia do que você faria (já fazem 3 meses que este post foi criado, mas não custa nada deixar gravado para futuros membros que acessarem).
seguindo sua linha de pensamento:
// Você precisa instanciar uma Identity @In Identity identity;
if (identity.getUsername()== “admin”){
// …permissoes para tudo…
identity.addRole(“admin”);
}else{
… apenas pode visualizar os registos, sem poder alterar/editar nada…
}
Agora, na sua classe que contém sua regra de negocio, você pode adicionar uma restrição aos metodos de alterar, para que somente quem tenha o perfil de “admin” possa executar. Como fazer isto? Você pode configurar pela sua page.xml ou usando uma anotação, um exemplo simples segue abaixo:
@Restrict("#{s:hasRole(‘admin’)}")
public String alterarDados(Object o){
entity.merge(o);
return “listar”;
}
Legal né? Que tal brincar mais um pouco? Você pode usar o rendered sua tela de acordo com suas permissões. Exemplo: