Pessoal. Qual é a melhor prática pra lidar com permissoes dinâmicas?
Estou usando spring mvc e jpa
Por exemplo. Um admin entra no sistema e restringe para um usuário a aba Financeiro da tela de cadastro de pessoas. Dai esse usuario consegue entrar no cadastro de pessoas mas não ver a aba. Se o admin restringir tudo, o usuário não consegue nem ver a tela.
Atualmente o back ta estruturado em entidades. Dai atrapalha um pouco. Não posso colocar uma role no get de pessoa por exemplo porque pessoa é usado em várias telas. O usuário pode estar restrito em uma tela e na outra nao.
Pensei no front me enviar a tela/aba que está tentando acessar e eu verificar com preAuthorize (expression based) mas não sei se isso seria uma boa. O front teria que me enviar uma constante da aba sendo acessada… Seria uma requisição a mais pra cada tela do sistema. Sem falar que teria que mexer no sistema todo e isso não é muito seguro né? Ou é?
Qual método recomendam? Qual o padrão que costumam usar em grandes sistemas?