Мое определение компонента "запомни меня" выглядит так и отлично работает
<security:remember-me data-source-ref="dataSource" user-service-ref="userService"/>
Однако в первый раз пользователь регистрируется, и я хочу программно войти в систему и выполнить запоминание. Я не знаю, как получить доступ к услуге «Запомни меня». я могу сделать это
UsernamePasswordAuthenticationToken auth =
new UsernamePasswordAuthenticationToken(user, "", authorities);
SecurityContextHolder.getContext().setAuthentication(auth);
HttpServletRequestWrapper wrapper = new HttpServletRequestWrapper(request) {
@Override public String getParameter(String name) { return "true"; }
};
Но как получить доступ к сервису «запомнить меня», как показано ниже, если я использую реализацию Spring по умолчанию, а не свой собственный bean-компонент?
getRememberMeServices().loginSuccess(wrapper, response, auth);
Из здесь
ИЗМЕНИТЬ Я изменил определение своего bean-компонента, чтобы он выглядел так
<security:remember-me services-alias="rememberMeService" data-source-ref="dataSource" user-service-ref="userService"/>
Но intellij все еще возвращается с ошибкой, когда я пытаюсь ввести вот так:
@Resource(name = "rememberMeService")
private RememberMeServices rememberMeService;
1 ответ
Вы можете использовать атрибут services-alias
в remember-me
элемент пространства имен, чтобы установить псевдоним bean-компонента для RememberMeServices
. Затем вы можете вставить эту ссылку в другие bean-компоненты, которые вы создаете сами.
Похожие вопросы
Связанные вопросы
Новые вопросы
java
Java — это высокоуровневый объектно-ориентированный язык программирования. Используйте этот тег, если у вас возникли проблемы с использованием или пониманием самого языка. Этот тег часто используется вместе с другими тегами для библиотек и/или фреймворков, используемых разработчиками Java.