gpt4 book ai didi

java - 具有 spring 安全性的程序化记住我

转载 作者:行者123 更新时间:2023-11-30 09:26:58 25 4
gpt4 key购买 nike

我的 remember-me 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"; }
};

但是如何像下面那样访问 remember-me 服务,因为我使用的是默认的 spring 实现而不是我自己的 bean?

getRememberMeServices().loginSuccess(wrapper, response, auth);

来自 here

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

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

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

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

最佳答案

您可以使用 remember-me namespace elementservices-alias 属性为 RememberMeServices 设置一个 bean 别名。然后,您可以将该引用注入(inject)到您自己创建的其他 bean 中。

关于java - 具有 spring 安全性的程序化记住我,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14788867/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com