Problema ao autenticar na app pela 1ª vez
06/08/2013 20:33
0
Boa Tarde !

Estou com um problema na autenticação do meu sistema.
O erro aparece toda vez que você loga na aplicação após reiniciar o tomcat ou quando uso um navegador que não tem o cookie.
Quando o usuário clica em "entrar" o spring security exibe a tela de acesso negado. Eu sei que isso acontece porque eu setei a conf springsecurity.rejectIfNoRule = true. Sem isso o usuário loga normalmente e o jsessionid parece na url. Será que existe uma forma de não gerar este jsessionid ?
Segue abaixo conf do spring security

grails.plugins.springsecurity.userLookup.userDomainClassName = 'sigo.security.User'
grails.plugins.springsecurity.userLookup.authorityJoinClassName = 'sigo.security.UserRole'
grails.plugins.springsecurity.authority.className = 'sigo.security.Role'
grails.plugins.springsecurity.requestMap.className = 'sigo.security.Requestmap'
grails.plugins.springsecurity.securityConfigType = 'Requestmap'
grails.plugins.springsecurity.rejectIfNoRule = true
grails.plugins.springsecurity.password.algorithm='SHA-512'
grails.plugins.springsecurity.successHandler.alwaysUseDefault = true
grails.plugins.springsecurity.successHandler.defaultTargetUrl='/home'

grails.plugins.springsecurity.useBasicAuth = true
grails.plugins.springsecurity.basic.realmName = "Autenticação"
grails.plugins.springsecurity.filterChain.chainMap = [
'/rest/**': 'JOINED_FILTERS,-exceptionTranslationFilter',
'/**': 'JOINED_FILTERS,-basicAuthenticationFilter,-basicExceptionTranslationFilter'
]
grails.plugins.springsecurity.dao.reflectionSaltSourceProperty = 'codigo'
grails.plugins.springsecurity.useSecurityEventListener = true

grails.plugins.springsecurity.scr.disableUrlRewriting = true
grails.plugins.springsecurity.useSessionFixationPrevention = true
grails.views.enable.jsessionid=false


Estou usando tomcat6.


Tags: jsessionid spring-security-core autenticacao


0
Eu não entendi direito, poderia mostrar qual o erro que ocorre?


0
Dae Leandro !


Eu tento logar no app e o spring security redireciona para a action /login/denied quando eu seto springsecurity.rejectIfNoRule = true
Se eu setar false, o jsessionid aparece na url

http://localhost:8080/app-dev/home;jsessionid=0067EC173BF05E7703811B42AC45F6EB

Eu estou precisando dar um sumiço nesse jsessionid que a coisa vai funcionar. hehe
07/08/2013 00:25


0
Olha, eu testei aqui não apareceu, e lendo a documentação do plugin, acredito que a configuração seguinte resolva teu problema

grails.plugins.springsecurity.scr.disableUrlRewriting = true


0
Foi mal você já está usando, qual a versão do plugin você está utilizando?


0
spring-security-core:1.2.7.3
07/08/2013 13:32


0
spring-security-core 1.2.7.3
07/08/2013 13:33


0
Opa Antonio!

Depois que você postou, fui procurar alguma solução, pois também UTILIZAVA o spring-security, porém andei achando alguns bugs, que me deixou desanimado.

O pior deles foi que ao adicionar um ";" ao final da url ele libera o acesso.

se quiser conferir esta falha eu criei um projeto de exemplo:
grails-spring-security-test

tente acessar a seguinte url sem estar autenticado
http://localhost:8080/grails-spring-security-test/principal;

Abri um chamado no jira do plugin
GPSPRINGSECURITYCORE-226
Mas pelo jeito vai ser lenta a solução.

Diante disso mudei para o shiro, além de mais simples, me parece bem mais seguro.


0
Testei aqui a sua aplicação e vi o erro. Parece que o spring security entende que /principal; é diferente de /principal. Eu configurei o conf da seguinte maneira:


grails.plugins.springsecurity.userLookup.userDomainClassName = 'com.security.test.User'
grails.plugins.springsecurity.userLookup.authorityJoinClassName = 'com.security.test.UserRole'
grails.plugins.springsecurity.authority.className = 'com.security.test.Role'
grails.plugins.springsecurity.securityConfigType = "InterceptUrlMap"

grails.plugins.springsecurity.interceptUrlMap = [
'/principal/**': ['IS_AUTHENTICATED_FULLY'],
]


/principal - não passa
/principal; - passa
/principal/index - não passa
/principal/index; - não passa

Quando eu adicionei outra reqra resolveu o problema:


grails.plugins.springsecurity.interceptUrlMap = [
'/principal/**': ['IS_AUTHENTICATED_FULLY'],
'/principal;**': ['IS_AUTHENTICATED_FULLY'],
]


mas é um bug bem crítico mesmo.


12/08/2013 16:54



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