2014-09-05 1 views
2

Я использую плагин весенней безопасности. Я хочу поместить объект в сеанс сразу после входа пользователя. То, что я обнаружил до сих пор, заключается в том, что в плагине есть grails.plugin.springsecurity.LoginController. И он имеет метод, который называется ajaxSuccess, который, кажется, вызывается сразу после успешной аутентификации. Поэтому я решил создать еще один LoginController, который проходит по умолчанию один и переопределяет этот метод:grails spring безопасность после проверки подлинности

@Secured('permitAll') 
class LoginController extends grails.plugin.springsecurity.LoginController { 


    def ajaxSuccess() { 
     session['somevproperty'] = someValue 
     super.ajaxSuccess() 
    } 

} 

но отладка показывает, что этот метод никогда не вызывается. Что происходит не так? Может, есть еще один способ сделать то, что я хочу? Спасибо!

ответ

5

Весенняя безопасность имеет свои собственные слушатели событий. Я предпочитаю, чтобы вы это использовали.

http://grails-plugins.github.io/grails-spring-security-core/guide/events.html

Пример кода из выше ссылке для успешного входа в систему.

package com.foo.bar 

import org.springframework.context.ApplicationListener 
import org.springframework.security.authentication.event. AuthenticationSuccessEvent 

class MySecurityEventListener implements ApplicationListener<AuthenticationSuccessEvent> { 

     void onApplicationEvent(AuthenticationSuccessEvent event) { 
     // handle the event 
     } 
} 
+0

Да, похоже, что это лучшее решение, спасибо! –

 Смежные вопросы

  • Нет связанных вопросов^_^