Javafree
Página Inicial do Fórum > Spring Framework

org.springframework.security.access.AccessDeniedException: Access is denied



Criar novo tópico   Responder tópico


  1. alois
    Posts:50


    Comment Arrow

    Publicado em: 18/03/2013 10:40:48

    Pessoal bom dia,

    Estou com problema com minha página de login que não redireciona para página de logado e páginas adm e restrita do sistema.
    Eis o logo do Tomcat:

    http://pastebin.com/YthLbkbZ

    Grato pela ajuda desde já.



  1. ms27817
    Posts:1052


    Comment Arrow

    Publicado em: 18/03/2013 21:18:07

    Trabalho mais com JAAS do que com Spring Security. Mas pela exceção, eu vi que você atribui roles ao Principal. Você definiu a role que permite acessar essas áreas restritas?
    Por exemplo, no JAAS, eu defino regras para cada path, e se um usuário quer acessar determinado path, ele tem que ter a role para aquele path atribuida.
    _________________

    Marcelo Senaga
    Papel: Moderador
    Scala Developer

    http://www.devmedia.com.br/senaga



  1. alois
    Posts:50


    Comment Arrow

    Publicado em: 20/03/2013 11:16:54

    Eis o meu applicationContext-security.xml


    Também o meu /restrito/principal.xhtml


    Veja também /admin/principal.xtml


    Bem depois de logado se usuario admin deve ser redirecionado para usuario logado e em seguida para /admin/principal.xhtml. Mas este redirecinamento não acontece e não sai da página de login.

    Aguardo resposta do que pode ser.

    Obrigado.



  1. sekkuar
    Posts:5998


    Comment Arrow

    Publicado em: 20/03/2013 11:30:03

    Dúvida parecida, a resposta pode ajudar com o seu problema.

    http://stackoverflow.com/questions/8742842/how-to-handle-accessdeniedexception-in-spring-security
    _________________

    Sekkuar ~ Ex-Catador Executivo do Javafree - (Não mais) Catando os tópico tudo.
    "The mod javafree deserves, but not the one it needs right now."

    Stack Traces existem pra ajudar e não para trazer uma mensagem de satã dizendo que seu computador será destruído.


    Peça seu Código Pronto para o seu Dever de Casa aqui
    You acknowledge that this software is not designed, licensed or intended for use in the design, construction, operation or maintenance of any nuclear facility.



  1. ms27817
    Posts:1052


    Comment Arrow

    Publicado em: 20/03/2013 22:11:20

    Você está dizendo que, esse trecho:



    Não está aparecendo na sua página?
    _________________

    Marcelo Senaga
    Papel: Moderador
    Scala Developer

    http://www.devmedia.com.br/senaga



  1. alois
    Posts:50


    Comment Arrow

    Publicado em: 21/03/2013 09:57:08

    Sim isso mesmo caro Marcelo, o que está acontecendo para esta parte do código não ser executada?



  1. ms27817
    Posts:1052


    Comment Arrow

    Publicado em: 21/03/2013 23:22:38

    [quote="alois"]Sim isso mesmo caro Marcelo, o que está acontecendo para esta parte do código não ser executada?



    1) Pode ser problema do login:
    Veja, o usuário que você esta tentando logar tem permissão (role=ROLE_ADMINISTRADOR)?

    2) Pode ser isso:
    http://stackoverflow.com/questions/2925040/why-is-my-secifanygranted-roles-role-admin-tag-ignored
    _________________

    Marcelo Senaga
    Papel: Moderador
    Scala Developer

    http://www.devmedia.com.br/senaga



  1. alois
    Posts:50


    Comment Arrow

    Publicado em: 24/03/2013 16:31:23

    Olá Marcelo, o usuário que estou tentando logar tem as duas permissões: ROLE_ADMINISTRADOR e ROLE_USUARIO. Agora por que não redireciona para a página? Não dá nem mensagem de erro. Vou rever algo que incluí com a ciptografia da senha.



  1. ms27817
    Posts:1052


    Comment Arrow

    Publicado em: 24/03/2013 22:30:37

    Faça um teste. Retire a tag:



    E veja se o código funciona.
    _________________

    Marcelo Senaga
    Papel: Moderador
    Scala Developer

    http://www.devmedia.com.br/senaga



  1. alois
    Posts:50


    Comment Arrow

    Publicado em: 26/03/2013 10:46:31

    Acontece a mesma coisa. Na verdade está fazendo o cadastro normalmente para usuário ROLE_USUARIO, mesmo assim não se loga como usuario comum. Como disse anteriormente o sistema nem sai da tela de login e dá access denied no Tomcat para o spring security.



  1. ms27817
    Posts:1052


    Comment Arrow

    Publicado em: 26/03/2013 23:31:11

    [quote="alois"]Acontece a mesma coisa. Na verdade está fazendo o cadastro normalmente para usuário ROLE_USUARIO, mesmo assim não se loga como usuario comum. Como disse anteriormente o sistema nem sai da tela de login e dá access denied no Tomcat para o spring security.



    Deixa eu ver se entendi. A página de login é mostrada corretamente, porém ao logar-se, o link /restrito/principal.jsf não fica acessível, é isso?
    Se for, parece que por algum motivo não está ficando registrado o usuário logado. Teria como postar o ManagedBean responsável pela validação do login?
    _________________

    Marcelo Senaga
    Papel: Moderador
    Scala Developer

    http://www.devmedia.com.br/senaga



  1. alois
    Posts:50


    Comment Arrow

    Publicado em: 29/03/2013 10:49:16

    Olá Marcelo,

    Desculpe a demora, semana curta, muito trabalho a fazer.
    Bem meu amigo mostro pra você a classe que redireciona para as páginas conforme a permissão.


    Se precisar de mais alguma coisa estou a disposição.



  1. ms27817
    Posts:1052


    Comment Arrow

    Publicado em: 30/03/2013 08:45:23

    [quote="alois"]Olá Marcelo,

    Desculpe a demora, semana curta, muito trabalho a fazer.
    Bem meu amigo mostro pra você a classe que redireciona para as páginas conforme a permissão.


    Se precisar de mais alguma coisa estou a disposição.



    Legal, se você puder postar o ManagedBean de login, ai dá para analisar melhor.
    _________________

    Marcelo Senaga
    Papel: Moderador
    Scala Developer

    http://www.devmedia.com.br/senaga



  1. alois
    Posts:50


    Comment Arrow

    Publicado em: 30/03/2013 21:50:00

    Login



  1. ms27817
    Posts:1052


    Comment Arrow

    Publicado em: 31/03/2013 00:48:04

    [quote="ms27817"][quote="alois"]Olá Marcelo,

    Desculpe a demora, semana curta, muito trabalho a fazer.
    Bem meu amigo mostro pra você a classe que redireciona para as páginas conforme a permissão.


    Se precisar de mais alguma coisa estou a disposição.



    Legal, se você puder postar o ManagedBean de login, ai dá para analisar melhor.



    Vendo esse artigo aqui:

    http://imasters.com.br/artigo/16780/seguranca/seguranca_com_spring_security_30_utilizando_banco_de_dados/

    Vi que o select do atributos authorities-by-username-query e users-by-username-query devem sempre retornar as colunas com nome:
    username, password, enable e authority.

    Como seu select não usa o nome das colunas recomendadas, dá o problema.

    Para não ter que renomear as colunas na tabela, siga a dica do artigo:

    http://imasters.com.br/artigo/17583/java/solucionando-role-springsecurity/


    _________________

    Marcelo Senaga
    Papel: Moderador
    Scala Developer

    http://www.devmedia.com.br/senaga



  1. alois
    Posts:50


    Comment Arrow

    Publicado em: 02/04/2013 11:00:53

    Amigo sou novo no Java e não consegui entender bem o que você disse. Por favor poderia me dizer mais a respeito?



  1. ms27817
    Posts:1052


    Comment Arrow

    Publicado em: 02/04/2013 22:28:03

    [quote="alois"]Amigo sou novo no Java e não consegui entender bem o que você disse. Por favor poderia me dizer mais a respeito?



    Você precisa retornar nomes padrões para que o Spring-Security entenda e aplique o mecanismo de roles.
    Eu sugiro que você leia na integra o tutorial:

    http://imasters.com.br/artigo/16780/seguranca/seguranca_com_spring_security_30_utilizando_banco_de_dados/

    É muito bom e vai te ensinar a fazer o que você quer.

    _________________

    Marcelo Senaga
    Papel: Moderador
    Scala Developer

    http://www.devmedia.com.br/senaga



  1. alois
    Posts:50


    Comment Arrow

    Publicado em: 03/04/2013 10:54:01

    Ok te respondo logo que puder.



  1. alois
    Posts:50


    Comment Arrow

    Publicado em: 25/04/2013 10:42:21

    Olá Marcelo,

    Em primeiro lugar desculpas pela demora. Consegui fazer o sistema funcionar observando bem os artigos indicados por você e vendo o retorno do authorities-by-username-query e users-by-username-query. Realmente era por ali o problema tirei também o MD5 que precisava fazer mais implementações no sistema..

    Obrigado pelas dicas.

    Vou administrar melhor o tempo e responder em tempo habil.



  1. Relacionados