我的“记住我” Bean定义如下所示,并且工作正常

<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);


来自here

编辑
我将我的bean定义更改为如下所示

<security:remember-me services-alias="rememberMeService" data-source-ref="dataSource" user-service-ref="userService"/>


但是当我尝试像这样注入时,intellij仍然返回错误:

@Resource(name = "rememberMeService")
private RememberMeServices rememberMeService;

最佳答案

您可以使用services-alias namespace elementremember-me属性为RememberMeServices设置bean别名。然后,您可以将该引用注入您自己创建的其他bean中。

07-26 09:28