8
respostas

Problema com as permissões

Estou tentando implementar as regras de acordo as permissões porém está tendo algum problema ao associar o usuário com a regra, utilizei dentro do meu jsp a tag lib security conforme abaixo e associei um usuário ao "ADMIN" através da tabela usuario_role, mesmo esse usuário não consegue ter acesso ao conteúdo que deveria por ter permissão.

 <ul class="nav navbar-nav navbar-right">
                <li class="dropdown">
                <security:authorize access="hasRole('ROLE_ADMIN')">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Cadastros <span class="caret"></span></a>

                  <ul class="dropdown-menu">           
                      <li><a href="/agendapsf/formEventos">Eventos</a></li>         
                      <li><a href="/agendapsf/formProced">Procedimentos</a></li>
                    <li><a href="/agendapsf/formPsf">Unidades</a></li>
                    <li><a href="/agendapsf/formUsuario">Usuários</a></li>
                  </ul>
                  </security:authorize>
                </li>
8 respostas

Eu não lembro direito, mas vc chegou a testar chamar a função hasRole passando só admim?

Oi Felipe, vi aqui na documentação e vc poderia passar o ROLE_ADMIN sim.. Acho que o melhor jeito é vc tentar ver quais são as roles do usuário logado...

Por exemplo, se vc fizer isso na sua jsp, vc consegue ter acesso ao objeto que representa o usuário logado.

    <sec:authorize access="isAuthenticated()">
        <sec:authentication property="principal" var="user"/>
    </sec:authorize>

Se vc tem certeza que o usuário ta logado, pode tirar a tag authorize. Agora que vc tem o usuário logado na variável user vc pode acessar assim:

${user.authorities}

Isso vai imprimir na página as roles dele. Lembre de adicionar um toString na sua classe que implementa a interface das roles.

Ele está com a regra correta.

Paciente FELIPE FERRAZ TORRES Regra [ROLE_ADMIN] Cartão SUS 123456

não consigo entender o pq de não estar liberando.

Help me!

Também não sei Felipe... se isso foi o que imprimiu usando o código que eu passei, realmente não sei o que pode estar acontecendo...

Oi Felipe, tudo bem?

Você pode colocar o código completo da página ou mostrar o código no GITHUB para que possamos avaliar?

Estou desconfiando de alguma regra anterior a essa ai que esteja bloqueando, já que aparentemente tudo está OK.

Outra forma que pode tentar é assim:

<security:authorize access="hasAnyRole('ROLE_ADMIN')">
  // Código aqui!!
</security:authorize>

O hasAnyRole é para muitas verificações mas eu creio que funcione apenas com uma também.

Hoje terei mais tempo para te responder se conseguir responder hoje.. na semana estou bem atolado. Fico no aguardo do seu código.

Abraço

Paulo Alves, tentei mas mesmo assim não deu certo.

Link do projeto no git https://github.com/felipeferraz14/agendapsf

Oi Felipe, qual a página que está tendo o problema?

Paulo, as duas jsp menuNav.jsp e listaEventos.jsp. Nas duas páginas tem situações que apenas um Admin podem ter acesso.