2016-05-14 2 views
1

У меня есть приложение Grails 3.1 и используйте плагин весенней безопасности, с помощью настраиваемого поставщика аутентификации без учета состояния. Все это работает, но я все еще получаю перенаправления на мой экран входа, когда нет сеанса, и сеанс создан (с кукисом id сеанса).Как я могу предотвратить Grails 3 от создания сеанса?

Как я могу дать указание безопасности весны, чтобы никогда не использовать файлы cookie, или, альтернативно, grails, чтобы никогда не создавать их? Я видел несколько ответов вокруг простой весенней безопасности, но с плагином для безопасности весны Grails, все выглядит по-другому.

ответ

0

Плагины Spring Security работают с фильтрами, возможно, один из них перенаправляет вас на страницу входа. Я точно не знаю, как вы настроили вашу аутентификацию, но на основе Spring Security REST Plugin вы должны удалить из цепочки фильтров те, которые вам не нужны.

grails.plugin.springsecurity.filterChain.chainMap = [ 
    //Stateless chain 
    [ 
     pattern: '/api/**', 
     filters: 'JOINED_FILTERS,-anonymousAuthenticationFilter,-exceptionTranslationFilter,-authenticationProcessingFilter,-securityContextPersistenceFilter,-rememberMeAuthenticationFilter' 
    ], 

    //Traditional chain 
    [ 
     pattern: '/**', 
     filters: 'JOINED_FILTERS,-restTokenValidationFilter,-restExceptionTranslationFilter' 
    ] 
] 
+0

Спасибо, с таким подходом я смог избежать сеанса, необходимого для аутентификации, то есть с моим набором токенов и без сеанса, я больше не перенаправляюсь обратно на страницу входа. Тем не менее, что-то все еще настаивает на создании сеанса, тогда я перенаправлен на страницу входа, несмотря на то, что у меня есть пользовательский LoginController и просмотр. Любые идеи, что бы это сделать? – SoftMemes

+0

Нет. Но установите уровень журналов безопасности весны для отладки, возможно, это поможет вам. –

0

Кажется, вам нужно установить на ложной, по крайней мере, следующие Spring Security свойства для того, чтобы правильно отключить создание сеанса.

application.groovy

grails.plugin.springsecurity.scr.allowSessionCreation = false 
grails.plugin.springsecurity.scpf.forceEagerSessionCreation = false 
grails.plugin.springsecurity.apf.allowSessionCreation = false 

У Вас есть дополнительная информация в плагине Grails Spring Security documentation website.