Я использую плагин Spring Security Core и могу успешно входить и выходить из своего приложения. Однако, когда пользователь успешно регистрируется, я не понимаю, как установить контекст безопасности этого пользователя в обратной передаче регистрации, чтобы его можно было перенаправить на защищенную страницу без повторного входа в систему. Любая помощь приветствуется. Спасибо.
Grails - создание учетной записи безопасности Spring
Ответы (2)
Другой ссылке, на которую вы ссылаетесь, 2 года. С тех пор я добавил метод reauthenticate
в SpringSecurityService. См. Раздел «6.2 SpringSecurityService» в документации: http://grails-plugins.github.com/grails-spring-security-core/docs/
person
Burt Beckwith
schedule
04.06.2012
Спасибо. Однако я не совсем понимаю, как это работает. Если я позвоню
springSecurityService.reauthenticate userInstance.username
сам по себе, как SecurityContext
узнает, какие права есть у имени пользователя? Это первый вызов аутентификации, который пользователь когда-либо делал, так как они совсем новые.
- person skaz; 04.06.2012
Прочтите источник :) Он в основном делает то, что делаете вы, за исключением того, что загружает пользователя из базы данных.
- 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