Bom dia pessoal,
Trabalho desenvolvendo um sistema que utiliza Jboss, Spring Security, Hibernate, JSF, PrimeFaces…
Controlamos o acesso de usuários com o Spring Security através de permissões de acesso (ROLE_ADMINISTRADOR, ROLE_USUARIO e etc), porém percebemos que o sistema não necessita desses perfis, mas sim de um controle dinâmico de acesso.
Por exemplo:
- Usuario1 pode acessar a opção 1, 2 e 3 no menu do sistema;
- Usuario2 pode acessar a opção 2 e 3;
- Usuario3 pode acessar apenas 1.
Futuramente se houver necessidade do Usuario3 acessar outra opção, adicionar a permissão. Ou se o Usuario1 não puder mais acessar a opção 2, retirar a permissão.
Nosso sistema limita o acesso às páginas apenas com o tipo de permissão do usuário que colocamos no menu:
<sec:ifAnyGranted
roles="ROLE_ADMINISTRADOR, ROLE_GESTOR">
<p:submenu label="Gestão">
<p:submenu label="Consultas">
<p:menuitem value="Exemplo"
url="/restrito/exemplo/pagina.jsf" /> </p:submenu>
</p:submenu>
</sec:ifAnyGranted>
Às vezes um usuário com o perfil ROLE_USUARIO precisa acessar essa página (um caso específico) porém não podemos adicionar essa permissão no menu da aplicação, já que não são todos os ROLE_USUARIO que podem acessar.
Gostaria que vocês indicassem formas de fazer esse controle de uma forma elegante e que funcione corretamente para esses casos.
Já pesquisei a respeito do VRaptor e do Spring Security, mas não achei um material que dissesse se é possível esse controle.
Sugestões?
Obrigada