Grails - создание учетной записи безопасности Spring

Я использую плагин Spring Security Core и могу успешно входить и выходить из своего приложения. Однако, когда пользователь успешно регистрируется, я не понимаю, как установить контекст безопасности этого пользователя в обратной передаче регистрации, чтобы его можно было перенаправить на защищенную страницу без повторного входа в систему. Любая помощь приветствуется. Спасибо.


person skaz    schedule 04.06.2012    source источник


Ответы (2)


Другой ссылке, на которую вы ссылаетесь, 2 года. С тех пор я добавил метод reauthenticate в SpringSecurityService. См. Раздел «6.2 SpringSecurityService» в документации: http://grails-plugins.github.com/grails-spring-security-core/docs/

person Burt Beckwith    schedule 04.06.2012
comment
Спасибо. Однако я не совсем понимаю, как это работает. Если я позвоню springSecurityService.reauthenticate userInstance.username сам по себе, как SecurityContext узнает, какие права есть у имени пользователя? Это первый вызов аутентификации, который пользователь когда-либо делал, так как они совсем новые. - person skaz; 04.06.2012
comment
Прочтите источник :) Он в основном делает то, что делаете вы, за исключением того, что загружает пользователя из базы данных. - person Burt Beckwith; 04.06.2012

В конце концов я наткнулся на эту ссылку, которая помогает: https://stackoverflow.com/a/7112838/469106

Вот содержание этой ссылки:

Если у вас нет пароля, вы можете загрузить пользователя через

def user = User.findByUsername(username) 

и установка массива полномочий в конструкторе с 3 параметрами. Создайте авторизацию через

GrantedAuthority[] auths = user.authorities.collect { new GrantedAuthorityImpl(it.authority) }

Затем вы можете опустить вызов Authenticate () и использовать:

SecurityContextHolder.context.authentication = new UsernamePasswordAuthenticationToken(username, 'unknown', auths) 
person skaz    schedule 04.06.2012