为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用xml禁用Spring Security中的注销确认?

如何使用xml禁用Spring Security中的注销确认?

暮色呼如 2023-09-20 16:13:29
我已将 Spring security 从 4.x 更新到 5.x。现在,我遇到了 Spring security 要求用户确认注销的情况。有留言您确定要退出吗?下面给出的图像相同。我想去掉这一步。如何摆脱注销确认?目标:我想注销并重定向到我来自的页面。security.xml:<beans:beans xmlns="http://www.springframework.org/schema/security"             xmlns:beans="http://www.springframework.org/schema/beans"             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"             xsi:schemaLocation="http://www.springframework.org/schema/beans                http://www.springframework.org/schema/beans/spring-beans-3.0.xsd                http://www.springframework.org/schema/security                http://www.springframework.org/schema/security/spring-security-4.2.xsd">    <http auto-config="true" use-expressions="true">        <!-- isAnonymous() -->        <intercept-url pattern="/**/add/**" access="isAuthenticated()" />        <intercept-url pattern="/**/delete/**" access="isAuthenticated()" />        <intercept-url pattern="/**/update/**" access="isAuthenticated()" />    </http>    <authentication-manager>        <authentication-provider>            <user-service>                <user name="uzer64" password="{noop}123456" authorities="ROLE_USER" />                <user name="admin" password="{noop}admin" authorities="ROLE_ADMIN" />            </user-service>        </authentication-provider>    </authentication-manager></beans:beans>
查看完整描述

3 回答

?
慕村9548890

TA贡献1884条经验 获得超4个赞

这是一个 CSRF 功能,可以避免来自其他站点的恶意 javascript 发起的注销请求。

您的请求是GET: /logout,因此 Spring Security 希望通过用户操作(例如单击)来确认它。


所以要避免它。您的注销请求应该POST包含有效的_csrf令牌。


您可以通过使用 spring 表单标签和方法 post 来实现它,如下所示


<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>

...

<form:form action="${pageContext.request.contextPath}/logout" 

           method="post" modelAttribute="AnyModelAttributePassedFromController">

    <form:button value="submit"> Logout</form:button>

</form:form>

...

或者


<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>

...

<form:form action="${pageContext.request.contextPath}/logout" 

           method="post" modelAttribute="_csrf">

    <form:button value="submit"> Logout</form:button>

</form:form>

...


查看完整回答
反对 回复 2023-09-20
?
GCT1015

TA贡献1827条经验 获得超4个赞

@Override

    protected void configure(HttpSecurity http) throws Exception {

        http

            .logout()

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

    }

这个对我有用。


查看完整回答
反对 回复 2023-09-20
?
HUWWW

TA贡献1874条经验 获得超12个赞

您可以尝试以下方法:-

    <logout
    logout-success-url="/anonymous.html"
    logout-url="/perform_logout" />

您可以提及要重定向的网址。您还可以添加 delete-cookies="JSESSIONID"删除cookie。


查看完整回答
反对 回复 2023-09-20
  • 3 回答
  • 0 关注
  • 81 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信