В моем приложении grails я хочу знать, когда это первый логин после успешного регистрации пользователя. Я использую плагин основного ядра весны. Каков наилучший способ выполнения этого?Обнаружение 1-го соединения после регистрации в grails
ответ
Если вы не зарегистрировали пользователя автоматически после регистрации или не знаете, что пользователь будет вручную войти в систему сразу после регистрации, вам, вероятно, придется сохранять что-то вроде «lastLoginDate» с каждым пользователем. Затем просто проверьте, пусто ли это значение (это их первый вход в систему), иначе просто обновите дату входа каждый раз, когда они войдут в систему.
Этот код можно поместить в одно из событий, которые были запущены после успешного входа в систему.
ОБНОВЛЕНО на основе комментариев
grails.plugins.springsecurity.onInteractiveAuthenticationSuccessEvent = { e, appCtx ->
// fired after successful authentication
// and AFTER user info provided to SpringSecurityService
// to get currentUser, you can use the following
def springSecurityService = appCtx.getBean("springSecurityService")
def user = springSecurityService.currentUser
...
}
or
grails.plugins.springsecurity.onAuthenticationSuccessEvent = { e, appCtx ->
// fired after successful authentication
// and BEFORE user info provided to SpringSecurityService
// (e.g. springSecurityService.currentUser == null)
}
Более подробную информацию можно найти на SpringSecurity documentation под событиями.
можно использовать сервис в config.groovy , поэтому я могу вызвать springSecurityService.getCurrentUser()? –
Я не уверен, но если вы можете вставить SpringSecurityService - обратите внимание, что SpringSecurityService не будет иметь currentUser для пользователя в onAuthenticationSuccessEvent. Вместо этого вам нужно будет использовать onInteractiveAuthenticationSuccessEvent. – ikumen
Я попытался поместить это в свой config.groovy, но он не работает, когда я вхожу в систему, код этого метода не executed –
http://grails.1312388.n4.nabble.com/How-to-configure-Spring-Security-redirect-url-after-login-td3235600.html –