2

我的记住我的 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);

这里

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

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

但是当我尝试像这样注入时,intellij 仍然会出现错误:

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

1 回答 1

2

您可以使用命名空间元素services-alias的属性为. 然后,您可以将该引用注入您自己创建的其他 bean。remember-meRememberMeServices

于 2013-02-09T15:15:01.463 回答