๐ฆ[์คํ๋ง ์ํ๋ฆฌํฐ OAuth2] HttpBasic ์ธ์ฆ
HttpBasic ์ธ์ฆ
- HTTP ๋ ์ก์ธ์ค ์ ์ด์ ์ธ์ฆ์ ์ํ ํ๋ ์์ํฌ๋ฅผ ์ ๊ณตํ๋ฉฐ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์ธ์ฆ ๋ฐฉ์์ โBasicโ ์ธ์ฆ ๋ฐฉ์์ด๋ค
- RFC 7235 ํ์ค์ด๋ฉฐ ์ธ์ฆ ํ๋กํ ์ฝ์ HTTP ์ธ์ฆ ํค๋์ ๊ธฐ์ ๋์ด ์๋ค
- ํด๋ผ์ด์ธํธ๋ ์ธ์ฆ์ ๋ณด ์์ด ์๋ฒ๋ก ์ ์์ ์๋ํ๋ค
- ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ์๊ฒ ์ธ์ฆ์๊ตฌ๋ฅผ ๋ณด๋ผ ๋ 401 Unauthorized ์๋ต๊ณผ ํจ๊ป WWW-Authenticate ํค๋๋ฅผ ๊ธฐ์ ํด์ realm(๋ณด์์์ญ) ๊ณผ Basic ์ธ์ฆ๋ฐฉ๋ฒ์ ๋ณด๋
- ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ๋ก ์ ์ํ ๋ Base64 ๋ก username ๊ณผ password ๋ฅผ ์ธ์ฝ๋ฉํ๊ณ Authorization ํค๋์ ๋ด์์ ์์ฒญํจ
- ์ฑ๊ณต์ ์ผ๋ก ์๋ฃ๋๋ฉด ์ ์์ ์ธ ์ํ ์ฝ๋๋ฅผ ๋ฐํํ๋ค.
HttpBasicConfigurer & BasicAuthenticationFilter
HttpBasicConfigurer
- HTTP Basic ์ธ์ฆ์ ๋ํ ์ด๊ธฐํ๋ฅผ ์งํํ๋ฉฐ ์์ฑ๋ค์ ๋ํ ๊ธฐ๋ณธ๊ฐ๋ค์ ์ค์ ํ๋ค
- ๊ธฐ๋ณธ AuthenticationEntryPoint ๋ BasicAuthenticationEntryPoint ์ด๋ค
- ํํฐ๋ BasicAuthenticationFilter ๋ฅผ ์ฌ์ฉํ๋ค
BasicAuthenticationFilter
- ์ด ํํฐ๋ ๊ธฐ๋ณธ ์ธ์ฆ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ๋ฐ ์ฌ์ฉ๋๋ค
- BasicAuthenticationConverter ๋ฅผ ์ฌ์ฉํด์ ์์ฒญ ํค๋์ ๊ธฐ์ ๋ ์ธ์ฆ์ ๋ณด์ ์ ํจ์ฑ์ ์ฒดํฌํ๋ฉฐ Base64 ์ธ์ฝ๋ฉ๋ username ๊ณผ password ๋ฅผ ์ถ์ถํ๋ค
- ์ธ์ฆ์ด ์ฑ๊ณตํ๋ฉด Authenticatoin ์ด SecurityContext ์ ์ ์ฅ๋๊ณ ์ธ์ฆ์ด ์คํจํ๋ฉด Basic ์ธ์ฆ์ ํตํด ๋ค์ ์ธ์ฆํ๋ผ๋ ๋ฉ์์ง๋ฅผ ํ์ํ๋ BasicAuthenticationEntryPoint ๊ฐ ํธ์ถ๋๋ค
- ์ธ์ฆ ์ดํ ์ธ์ ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์ ์ฌ์ฉํ์ง ์๋ ๊ฒฝ์ฐ์ ๋ฐ๋ผ ์ฒ๋ฆฌ๋๋ ํ๋ฆ์ ์ฐจ์ด๊ฐ ์๋ค. ์ธ์ ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋งค ์์ฒญ ๋ง๋ค ์ธ์ฆ๊ณผ์ ์ ๊ฑฐ์น์ง ์์ผ๋ ์ธ์ ์ ์ฌ์ฉํ์ง ์๋ ๊ฒฝ์ฐ ๋งค ์์ฒญ๋ง๋ค ์ธ์ฆ๊ณผ์ ์ ๊ฑฐ์ณ์ผ ํ๋ค
๋๊ธ๋จ๊ธฐ๊ธฐ