Я использую плагин Spring Security Core и могу успешно регистрировать пользователей в моем приложении и из него. Однако, когда пользователь успешно подписывается, я не понимаю, как установить контекст безопасности пользователя в postback для регистрации, чтобы они могли быть перенаправлены на защищенную страницу без необходимости повторного входа в систему. Любая помощь приветствуется. Благодарю.Создание учетной записи безопасности Grails - Spring
1
A
ответ
0
В конце концов я наткнулся на эту ссылку, которая делает трюк: https://stackoverflow.com/a/7112838/469106
Вот содержание этой ссылке:
Если у вас нет пароля, вы можете загрузить пользователя с помощью
def user = User.findByUsername(username)
и установка массива полномочий в 3-параметрическом конструкторе. Создайте с помощью
АвтGrantedAuthority[] auths = user.authorities.collect { new GrantedAuthorityImpl(it.authority) }
Затем вы можете пропустить вызов аутентификации() и использование:
SecurityContextHolder.context.authentication = new UsernamePasswordAuthenticationToken(username, 'unknown', auths)
2
Другая ссылка вы ссылаетесь 2-х лет. С тех пор я добавил метод reauthenticate
в SpringSecurityService. См. Раздел «6.2 SpringSecurityService» в документах: http://grails-plugins.github.com/grails-spring-security-core/docs/
Спасибо. Я действительно не понимаю, как это работает. Если я сам называю «springSecurityService.reauthenticate userInstance.username», как «SecurityContext» знает, какие полномочия имеют имя пользователя? Это первый запрос на аутентификацию, который пользователь когда-либо сделал, так как он совершенно новый. – skaz
Прочтите источник :) Это в основном то, что вы делаете, за исключением того, что он загружает пользователя из базы данных. –