-
Notifications
You must be signed in to change notification settings - Fork 7
PT BR 03. Configuração
A configuração básica/obrigatória exige que sejam implementados as seguintes interfaces:
-
AuthorizationRestrictionListener
(Obrigatório)A implementação dessa interface é obrigatória deve ser feita em seu
@Controller
e serve para que você decida o destino do usuário caso ele se confronte com um problema de autenticação ou autorização. Exemplo:
import br.com.caelum.vraptor.security.AuthorizationRestrictionListener;
@Controller
public class AuthController implements AuthorizationRestrictionListener {
@Inject private Result result;
@Override
public void onAuthorizationRestriction(AuthorizationException e) {
result.include("error", e.toString());
result.forwardTo(LoginController.class).formLogin();
//OR
result.use(Results.status()).forbidden(e.toString());
}
}
-
Permission
(Obrigatório)A implementação dessa interface é obrigatória serve para fazer a ponte entre os dados dos usuários que estão disponíveis em seu banco de dados, arquivo.ini, etc. para o plugin. Exemplo:
import br.com.caelum.vraptor.security.Permission;
import br.com.caelum.vraptor.security.User;
public class AuthService implements Permission {
@Inject UsuarioDAO usuarioDAO;
@Override
public User getUserByUsername(String username) {
Usuario usuario = usuarioDAO.selecionarUsuarioByUsername(username);
return new User(usuario.getUsername(), usuario.getPassword());
}
@Override
public Set<String> getRolesByUser(String username) {
return usuarioDAO.listarPerfilsByUsername(username);
}
@Override
public Set<String> getPermissionsByRole(String role) {
return usuarioDAO.listarPermissoesByPerfil(role);
}
}
-
ShiroInitConfigStrategy
(Opcional)A implementação dessa interface é opcional e tem como objetivo a possibilidade de customização do Apache Shiro. É possível, portanto, modificar globalmente o comportamento da sessão do usuário, da criptografia, etc. Ao longo da documentação serão apresentados alguns exemplos práticos.
-
AuthenticationListener
(Opcional)A implementação dessa interface é opcional e serve para observar quando um usuário faz login ou logoff da aplicação.
-
SessionListener
(Opcional)A implementação dessa interface é opcional e serve para observar quando a sessão de um usuário inicia, finaliza ou expira.
Próximo Passo: Autenticação