3 回答

TA貢獻(xiàn)1884條經(jīng)驗(yàn) 獲得超4個(gè)贊
這是一個(gè) CSRF 功能,可以避免來(lái)自其他站點(diǎn)的惡意 javascript 發(fā)起的注銷請(qǐng)求。
您的請(qǐng)求是GET: /logout,因此 Spring Security 希望通過(guò)用戶操作(例如單擊)來(lái)確認(rèn)它。
所以要避免它。您的注銷請(qǐng)求應(yīng)該P(yáng)OST包含有效的_csrf令牌。
您可以通過(guò)使用 spring 表單標(biāo)簽和方法 post 來(lái)實(shí)現(xiàn)它,如下所示
<%@ 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>
...

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超4個(gè)贊
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.logout()
.logoutRequestMatcher(new AntPathRequestMatcher("/logout"));
}
這個(gè)對(duì)我有用。

TA貢獻(xiàn)1874條經(jīng)驗(yàn) 獲得超12個(gè)贊
您可以嘗試以下方法:-
<logout logout-success-url="/anonymous.html" logout-url="/perform_logout" />
您可以提及要重定向的網(wǎng)址。您還可以添加 delete-cookies="JSESSIONID"
刪除cookie。
添加回答
舉報(bào)