์ด๋ ํ ์์ฒญ์ด ๋ค์ด์์ ๋, ํค๋์ ๋ด๊ธด jwt์ ์ ํจ์ฑ ํ๋ณ์ ํ๋ ๋ก์ง์ด ๊ณตํต์ ์ผ๋ก ํ์๋ก ํ๋ค. Spring security์ ๊ฒฝ์ฐ์๋ Filter chain์ ์ ๊ณตํด ์ด์ ๊ฐ์ ๋ก์ง์ ์ฒ๋ฆฌํ๋ค.
์ด๋ ์์ฒญ์ด ๋ค์ด์ค๋ฉด์ ์ ํจ์ฑ์ ๊ฒ์ฌํ๋ ์์น๊ฐ ์ด๋์ธ์ง, ๊ตฌ์ฒด์ ์ผ๋ก ํ์
ํ๊ณ ์ ํ์๋ค.
Front Controller ๋ก์จ, ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ์์ฒญ์ด ์จ๋ค๋ฉด ๋ชจ๋ ์์ฒญ์ ๋จผ์ ๋ฐ๊ณ ๊ทธ ์์ฒญ๋ค์ ์ธ๋ถ ์ปจํธ๋กค๋ฌ๋ก ์์ํ๋ค.
์์ฒญ์ด ๋ค์ด์์ ๋์ ์์๋ ์๋์ ๊ฐ๋ค.
์ฌ๊ธฐ์ ๋ฐ๋ก controller๋ฅผ ํธ์ถํ์ง ์๊ณ , handler adapter๋ผ๋ ๊ฒ์ ํตํด controller๋ฅผ ํธ์ถํ๋ค. ๊ทธ ์ด์ ๋ @RequestParam
, @RequestBody
๋ฑ์ ์ฒ๋ฆฌํ๊ธฐ ์ํ ArgumentResolver๋ค๊ณผ, ์๋ต ์์ ResponsEntity
์ Body๋ฅผ json์ผ๋ก ์ง๋ ฌํํ๋ ReturnValueHandler๋ค์ด ์ด๋ํฐ๋ฅผ ํตํด ์ฒ๋ฆฌ๋๊ธฐ ๋๋ฌธ์ด๋ค.
๊ณตํต ๊ด์ฌ์ฌ๋ฅผ ์ฒ๋ฆฌํ๋ค๋ ์ ์์ interceptor์ ์ ์ฌํด ํจ๊ป ์ ๋ฆฌํด ๋ณด์๋ค.
ํํฐ๋ DispatcherServlet ์ด์ ์ ์คํ์ด ๋๋ฉฐ, Spring ๋ฒ์ ๋ฐ์์ ์ฒ๋ฆฌ๊ฐ ๋๋ ๊ฒ์ด๋ค. ์ฆ, ์คํ๋ง ์ปจํ ์ด๋๊ฐ ์๋ ์น ์ปจํ ์ด๋์ ์ํด ๊ด๋ฆฌ๊ฐ ๋๋ ๊ฒ์ด๋ค.
์ธํฐ์ ํฐ๋ Spring์ด ์ ๊ณตํ๋ ๊ธฐ์ ๋ก, Dispatcher Servlet์ด ์ปจํธ๋กค๋ฌ๋ฅผ ํธ์ถํ๊ธฐ ์ ๊ณผ ํ์ ์ฒ๋ฆฌ๋ฅผ ํ ์ ์๋ค. ์์์ Dicpoatcher Servlet์ ํธ๋ค๋ฌ ๋งคํ์ ํตํด ์ ์ ํ ์ปจํธ๋กค๋ฌ๋ฅผ ์ฐพ๋๋ก ์์ฒญํ๋ค๊ณ ํ์๋๋ฐ, ์ด๋ ์ฐพ์ ํ ์คํ ์ฒด์ธ์ด๋ผ๋ ๊ฒ์ ๋๋ ค์ค๋ค. ์ด ์คํ ์ฒด์ธ์ 1๊ฐ ์ด์์ ์ธํฐ์ ํฐ๊ฐ ๋ฑ๋ก๋์ด ์๋ค๋ฉด ์์ฐจ์ ์ผ๋ก ์ธํฐ์ ํฐ๋ค์ ๊ฑฐ์ณ ์ปจํธ๋กค๋ฌ๊ฐ ์คํ๋๋๋ก ํ๊ณ , ์ธํฐ์ ํฐ๊ฐ ์๋ค๋ฉด ๋ฐ๋ก ์ปจํธ๋กค๋ฌ๊ฐ ์คํ๋๋๋ก ํ๋ค.
ํํฐ๋ ์คํ๋ง๊ณผ ๋ฌด๊ดํ๊ฒ ์ ์ญ์ ์ผ๋ก ์ฒ๋ฆฌํด์ผ ํ๋ ์์ ๋ค์ ์ฒ๋ฆฌํ ๋ ์ฌ์ฉ ํ๋ค. ์ธํฐ์ ํฐ๋ณด๋ค ์๋จ์์ ๋์ํ๋ฏ๋ก ์ ์ญ์ ์ผ๋ก ํด์ผํ๋ ๋ณด์ ๊ฒ์ฌ๋ฅผ ํด, ์ฌ๋ฐ๋ฅธ ์์ฒญ์ด ์๋ ๊ฒฝ์ฐ ์ฐจ๋จ์ ํ ์ ์์ผ๋ฉฐ ์ด๋ ์คํ๋ง ์ปจํ ์ด๋๊น์ง ์์ฒญ์ด ์ ๋ฌ๋์ง ๋ชปํ๊ณ ์ฐจ๋จ๋์ด ์์ ์ฑ์ ๋์ผ ์ ์๋ค.
์ธํฐ์ ํฐ๋ ์ปจํธ๋กค๋ฌ๋ก ๋์ด๊ฐ๊ธฐ ์ , ๊ฒ์ฌํด์ผํ๋ ๋ก์ง์ ์ฒ๋ฆฌํ๊ธฐ์ ์ ํฉํ๋ค. ๋ํ ์คํ๋ง๊ณผ ์ฐ๊ด์ด ๋ง์ ์์ ์ ํ๊ธฐ ์ฌ์ฐ๋ฉฐ ์ฃผ๋ก ๋น ํธ์ถ์ ๋ํ ๋ก๊น ์ด ์๋ค.
์์ ๋ด์ฉ์ ์์ฝํ์๋ฉด dispatcher servlet์ ๋๋ฌํ๊ธฐ ์ , ํํฐ๋ฅผ ๊ฑฐ์ณ์ผํ๋ค๋ ๊ฒ์ด๋ค.
spring security๋ ํํฐ๋ค์ ์ฒด์ธ์ผ๋ก ์ฎ๋ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๋ฉฐ, DelegatingFilterProxy
๋ผ๋ ํํฐ๋ฅผ ๋ง๋ค์ด ๋ฉ์ธ Filter Chain์ ๋ผ์ ๋ฃ๊ณ ๊ทธ ์๋ SecurityFilterChain ๊ทธ๋ฃน์ ๋ฑ๋กํ๋๋ก ํ๋ค.
WebSecurityConfigurerAdapter
ํด๋์ค๋ฅผ ์์๋ฐ์ Filter Chain์ ๊ตฌ์ฑํ ์ ์์ผ๋ฉฐ, configure(HttpSecurity http)
๋ฅผ overrideํด ํน์ url ๋งคํ์ ํตํ ๊ถํ ์ค์ , filter ์ธํ
๋ฑ์ ์ํํ ์ ์๋ค.
https://mangkyu.tistory.com/18
https://mangkyu.tistory.com/173
https://velog.io/@seongwon97/Spring-Security-Filter%EB%9E%80