sách gpt4 ai đã đi

Nhiều URL đăng xuất trong Spring Security?

In lại 作者:行者123 更新时间:2023-12-05 04:15:37 26 4
mua khóa gpt4 Nike

我正在使用 Spring security java 配置,我想知道一种实现多个 url 注销的方法。即

logout().logoutRequestMatcher(new 
AntPathRequestMatcher("/invalidate")).logoutUrl("/logout");

在这段代码中,正常的注销 url“/logout”工作正常,它是一个发布请求,但我也希望用户注销 url“/invalidate”,这似乎不起作用。

1 Câu trả lời

根据Spring Security的教程,似乎下一个更优雅的做法:

nhập mô tả hình ảnh ở đây

在安全表单登录标签中添加如下内容:


每次您点击/logout URL 时,logoutHandler 都会被调用,您可以根据它决定在成功注销后的行为方式。

来自 Spring 文档:

nhập mô tả hình ảnh ở đây

您需要做的就是创建一个新类来实现图中标记的接口(interface)并实现其单一方法。

在该方法上决定在成功注销后如何操作。例如:

@Component("logoutHandler")
public class MyLogoutSuccessHandler implements LogoutSuccessHandler {

@Ghi đè
public void onLogoutSuccess(HttpServletRequest request,HttpServletResponse response, Authentication authentication) throws IOException, ServletException {

if(request.getParameter("msgShow") != null && request.getParameter("msgShow").equals("false")){
redirectResponse(request, response, "http://" + request.getServerName() + ":" + request.getServerPort() + "/my_web_app/home?logout=false");
}
else{
redirectResponse(request, response,"http://" + request.getServerName() + ":" + request.getServerPort() + "/my_web_app/home?logout=true");
}
}

private void redirectResponse(HttpServletRequest request, HttpServletResponse response, String destination) {
response.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
response.setHeader("Location", destination);
}
}

现在不要忘记向上面的注销处理程序添加一个 @Thành phần 注释 + 在安全配置文件中添加接下来的 2 条语句:



关于spring-security - Spring Security 多个注销网址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31880662/

26 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com