๐ข์คํ๋ง ์ํ๋ฆฌํฐ๋ก ์ฐ์ต์ ํ๋ ์ค logout์ ํ๊ฒ ๋๋ฉด 404 error๊ฐ ๋ฐ์ํ๋ค.
http.logout(logout ->
logout.logoutSuccessUrl("/")
.deleteCookies("JSESSIONID")
.invalidateHttpSession(true)
.clearAuthentication(true));
<a th:href="@{/logout}">Logout</a>
๐ค์ฒ์์๋ 404์๋ฌ๊ฐ ๋์์ mapping์ ๋ฌธ์ ๋ก ์๊ฐํ์ผ๋ ์ฌ๋ฌ ๊ธ๋ค์ ๋ณด๋ฉด ๊ธฐ๋ณธ /logout url๋ง ์ค์ ํด์ฃผ๋ฉด ์์์ ์ฒ๋ฆฌํด์ฃผ๊ฒ ๋๋ค๊ณ ํด์ mapping์ ๋ฌธ์ ๊ฐ ์๋๊ฒ์ผ๋ก ํ์
ํ๋ค.
์กฐ๊ธ ๋ ๊ธ์ ์ฐพ์๋ณธ ๊ฒฐ๊ณผ ์คํ๋ง ๊ณต์ ํํ์ด์ง์์ ๋ต์ ์ฐพ์๋๋ฐ ๊ฑฐ๊ธฐ์ ์ฐ์ฌ ์๋ ๊ธ์ ๋ณด๋ฉด
logout์ ์คํํ ๋๋ post๋ฐฉ์์ผ๋ก ์์ฒญํด์ผ ํ๋ฉฐ post๋ฐฉ์์ผ๋ก ์์ฒญํ ๋ csrfํ ํฐ๋ ๊ฐ์ด ๋ณด๋ธ๋ค๊ณ ํ๋ค.
๐์์์ ์ง ์ฝ๋๋ฅผ ๋ณด๋ฉด a ํ๊ทธ๋ก ๋์ด ์์ด get๋ฐฉ์์ผ๋ก ๋ค์ด๊ฐ๊ฒ ๋๋๋ฐ ๋ฐฉ์์ ํฌ์คํธ๋ก ๋ณด๋ด๊ฑฐ๋ ๋ด๊ฐ ์ง์ getMapping์ ํตํด logout์ ๊ตฌํํ๋ฉด ๋๋ค. ์ ์ฝ๋์ ๊ฒฝ์ฐ๋
์์๋ฐฉํธ์ผ๋ก http.csrf().disable();
์ ์ง์ด๋ฃ์ด์ฃผ๋ logout์ด ์ ๋๋ก ๋์ํ์๋ค.
csrf๋ฅผ ๋ง๊ฒ ๋๋ฉด csrf ๊ณต๊ฒฉ์ ์ํํ๋ ์ ๋ฐฉ์์ ์ฐ์ตํ ๋๋ง ์ฌ์ฉํ๋๋ก ํ๋๊ฒ ์ข์ ๊ฒ ๊ฐ๋ค.
๋ค๋ฅธ ๋ถ๋ค์ get์์ฒญ์ผ๋ก ๋ฐ๋ก Getmapping์ ์ค์ ํด์ ์ง์ ์ฒ๋ฆฌ ํ๊ธฐ๋ ํจ
์ถ์ฒ : ์ ์์ -์คํ๋ง ์ํ๋ฆฌํฐ , ์คํ๋ง ํํ์ด์ง