Problema com plugin Spring Security Core
18/01/2013 17:17
0
Estou com um problema com o uso deste plugin, uma vez que estou usando a configuração dos acessos pela interceptação da URL (InterceptUrlMap). Segundo o manual, quando colocamos os caminhos das URL's no Config devemos nos atentarmos para a ordem pois as caracteristicas podem se perpetuar.

O problema é que eu ativei o modo de bloqueio pessimista (grails.plugins.springsecurity.rejectIfNoRule = true ) e não consigo visualizar minhas páginas, diz que eu não tenho acesso isso quando não ocorre o erro:


Error 2013-01-18 14:57:20,016 [http-bio-8080-exec-6] ERROR [/App].[default] - Servlet.service() for servlet [default] in context with path [/App] threw exception
Message: Failed to evaluate expression 'ADMINISTRADOR'
Line | Method
->> 1110 | runWorker in java.util.concurrent.ThreadPoolExecutor
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 603 | run in java.util.concurrent.ThreadPoolExecutor$Worker
^ 722 | run . . . in java.lang.Thread

Caused by SpelEvaluationException: EL1008E:(pos 0): Field or property 'ADMINISTRADOR' cannot be found on object of type 'org.springframework.security.web.access.expression.WebSecurityExpressionRoot'
->> 1110 | runWorker in java.util.concurrent.ThreadPoolExecutor
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 603 | run in java.util.concurrent.ThreadPoolExecutor$Worker
^ 722 | run . . . in java.lang.Thread



Minhas configurações em config estão assim:



grails.plugins.springsecurity.securityConfigType = "InterceptUrlMap" //"Annotation" ou "Requestmap"
autenticação. A maioria das exceções de autenticação acionar um evento com um nome semelhante.
grails.plugins.springsecurity.rejectIfNoRule = true

grails.plugins.springsecurity.interceptUrlMap = [


//ARQUIVO
'/arquivo/cadastrar/': ['ADMINISTRADOR', 'IS_AUTHENTICATED_FULLY'],
'/arquivo/editar/': ['ADMINISTRADOR', 'IS_AUTHENTICATED_FULLY'],
'/arquivo/visualizar/': ['USUARIO', 'IS_AUTHENTICATED_FULLY'],
'/arquivo/painel/': ['IS_AUTHENTICATED_ANONYMOUSLY'],


//USUARIO
'/usuario/criar/': ['ADMINISTRADOR', 'IS_AUTHENTICATED_FULLY'],
'/usuario/editar/': ['ADMINISTRADOR', 'IS_AUTHENTICATED_FULLY'],
'/usuario/listar/': ['ADMINISTRADOR', 'IS_AUTHENTICATED_FULLY'],
'/usuario/visualizar/': ['USUARIO', 'IS_AUTHENTICATED_FULLY'],
//CATEGORIA
'/categoria/criar/': ['ADMINISTRADOR', 'IS_AUTHENTICATED_FULLY'],
'/categoria/editar/': ['ADMINISTRADOR', 'IS_AUTHENTICATED_FULLY'],
'/categoria/vincular/': ['USUARIO', 'IS_AUTHENTICATED_FULLY'],
'/categoria/avalizar/': ['USUARIO', 'IS_AUTHENTICATED_FULLY'],


'/js/**': ['IS_AUTHENTICATED_ANONYMOUSLY'],
'/css/**': ['IS_AUTHENTICATED_ANONYMOUSLY'],
'/images/**': ['IS_AUTHENTICATED_ANONYMOUSLY'],
'/*': ['IS_AUTHENTICATED_ANONYMOUSLY'],
'/login/**': ['IS_AUTHENTICATED_ANONYMOUSLY'],
'/logout/**': ['IS_AUTHENTICATED_ANONYMOUSLY'],

]


O mais estranho é que conforme a configuração '/arquivo/painel/' deveria ser público porém o sistema está pedindo autenticação.

Alguém poderia me ajudar a resolver este impasse?
Tags: segurança, erro, spring, url


0
Olá, Rodrigo.

Creio que, nesse caso, vc deveria inserir a regra no "Home" da sua página, antes de todos os outros. Assim:

/=IS_AUTHENTICATED_ANONYMOUSLY

Se não der certo, provavelmente é alguma ordem que precisa ser trocada aí...

Abraços.
18/01/2013 19:13


2
Cara eu passei por este erro e demorei a descobrir a solução.

Você pode perceber que os exemplos de uso do plugin são todos precedidos por 'ROLE_' e isso não é a toa.

É o seguinte, se você perceber suas regras não estão precedidas por 'ROLE_'. O Plugin verifica o prefixo 'ROLE' para diferenciá-lo dos métodos que começas com 'IS_'. Se você não coloca nada gera este problema.


Tem um jeito de resolver isso porém você terá que alterar um filtro do plugin. Veja o Jira aqui que você entenderá a história: http://jira.grails.org/browse/GPSPRINGSECURITYCORE-186

Abraço

21/01/2013 12:50


1
Era isso mesmo.

Nossa como eu ia descobrir isso sozinho? Ja estava pensando em mudar minha aplicação.

Obrigado mesmo pela ajuda!

Mais um problema resolvido.

Obrigado também 'carlosG'
21/01/2013 13:53



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto