gpt4 book ai didi

java - Spring Security AuthenticationException 持久化?

转载 作者:行者123 更新时间:2023-12-02 08:17:28 25 4
gpt4 key购买 nike

我在一个项目中使用 Spring MVC 和 Spring Security,并用它实现一个登录表单。我遇到了一种奇怪的行为,这是我没有预料到的,我想知道是否有办法避免它。

当登录表单上出现身份验证错误时,我的 Controller 中有一个方法来处理它:

@RequestMapping(value="/failed", method = RequestMethod.GET)
public String showLoginFailurePage(Model model, HttpServletRequest request) {
String authExClass = "";
AuthenticationException authEx = (AuthenticationException) request.getSession().getAttribute(WebAttributes.AUTHENTICATION_EXCEPTION);

if (authEx != null) {
authExClass = authEx.getClass().getSimpleName();
}
model.addAttribute("authExClass", authExClass);
return LOGIN_PAGE;
}

这最初有效,允许我在发生身份验证错误时显示错误。但是,如果我刷新页面,我希望 AuthenticationException 将不再附加到 session ,因此我不会向用户显示错误。然而,似乎异常在刷新后仍然存在。我有一个错误的假设吗?我不应该以这种方式使用我的请求对象吗?

谢谢!伊德宾特利

最佳答案

那么,是否有任何代码可以从 session 中清除AUTHENTICATION_EXCEPTION? Spring Security 可能不会自动从 session 中清除此属性,直到另一次授权尝试成功 - 我认为您假设此 session 属性已自动删除。

您可能需要自己从 session 中清除此属性,以便不再显示它。

关于java - Spring Security AuthenticationException 持久化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6073822/

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