์ตœ๋Œ€ 1 ๋ถ„ ์†Œ์š”

HttpBasic ์ธ์ฆ

  • HTTP ๋Š” ์•ก์„ธ์Šค ์ œ์–ด์™€ ์ธ์ฆ์„ ์œ„ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ์ธ์ฆ ๋ฐฉ์‹์€ โ€œBasicโ€ ์ธ์ฆ ๋ฐฉ์‹์ด๋‹ค
  • RFC 7235 ํ‘œ์ค€์ด๋ฉฐ ์ธ์ฆ ํ”„๋กœํ† ์ฝœ์€ HTTP ์ธ์ฆ ํ—ค๋”์— ๊ธฐ์ˆ ๋˜์–ด ์žˆ๋‹ค

image

  1. ํด๋ผ์ด์–ธํŠธ๋Š” ์ธ์ฆ์ •๋ณด ์—†์ด ์„œ๋ฒ„๋กœ ์ ‘์†์„ ์‹œ๋„ํ•œ๋‹ค
  2. ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ธ์ฆ์š”๊ตฌ๋ฅผ ๋ณด๋‚ผ ๋•Œ 401 Unauthorized ์‘๋‹ต๊ณผ ํ•จ๊ป˜ WWW-Authenticate ํ—ค๋”๋ฅผ ๊ธฐ์ˆ ํ•ด์„œ realm(๋ณด์•ˆ์˜์—ญ) ๊ณผ Basic ์ธ์ฆ๋ฐฉ๋ฒ•์„ ๋ณด๋ƒ„
  3. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„๋กœ ์ ‘์†ํ•  ๋•Œ Base64 ๋กœ username ๊ณผ password ๋ฅผ ์ธ์ฝ”๋”ฉํ•˜๊ณ  Authorization ํ—ค๋”์— ๋‹ด์•„์„œ ์š”์ฒญํ•จ
  4. ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒ๋˜๋ฉด ์ •์ƒ์ ์ธ ์ƒํƒœ ์ฝ”๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

HttpBasicConfigurer & BasicAuthenticationFilter

HttpBasicConfigurer

  • HTTP Basic ์ธ์ฆ์— ๋Œ€ํ•œ ์ดˆ๊ธฐํ™”๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ ์†์„ฑ๋“ค์— ๋Œ€ํ•œ ๊ธฐ๋ณธ๊ฐ’๋“ค์„ ์„ค์ •ํ•œ๋‹ค
  • ๊ธฐ๋ณธ AuthenticationEntryPoint ๋Š” BasicAuthenticationEntryPoint ์ด๋‹ค
  • ํ•„ํ„ฐ๋Š” BasicAuthenticationFilter ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค

BasicAuthenticationFilter

  • ์ด ํ•„ํ„ฐ๋Š” ๊ธฐ๋ณธ ์ธ์ฆ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค
  • BasicAuthenticationConverter ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์š”์ฒญ ํ—ค๋”์— ๊ธฐ์ˆ ๋œ ์ธ์ฆ์ •๋ณด์˜ ์œ ํšจ์„ฑ์„ ์ฒดํฌํ•˜๋ฉฐ Base64 ์ธ์ฝ”๋”ฉ๋œ username ๊ณผ password ๋ฅผ ์ถ”์ถœํ•œ๋‹ค
  • ์ธ์ฆ์ด ์„ฑ๊ณตํ•˜๋ฉด Authenticatoin ์ด SecurityContext ์— ์ €์žฅ๋˜๊ณ  ์ธ์ฆ์ด ์‹คํŒจํ•˜๋ฉด Basic ์ธ์ฆ์„ ํ†ตํ•ด ๋‹ค์‹œ ์ธ์ฆํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•˜๋Š” BasicAuthenticationEntryPoint ๊ฐ€ ํ˜ธ์ถœ๋œ๋‹ค
  • ์ธ์ฆ ์ดํ›„ ์„ธ์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์™€ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ์ฒ˜๋ฆฌ๋˜๋Š” ํ๋ฆ„์— ์ฐจ์ด๊ฐ€ ์žˆ๋‹ค. ์„ธ์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋งค ์š”์ฒญ ๋งˆ๋‹ค ์ธ์ฆ๊ณผ์ •์„ ๊ฑฐ์น˜์ง€ ์•Š์œผ๋‚˜ ์„ธ์…˜์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ๋งค ์š”์ฒญ๋งˆ๋‹ค ์ธ์ฆ๊ณผ์ •์„ ๊ฑฐ์ณ์•ผ ํ•œ๋‹ค

API

image

ํ๋ฆ„๋„

image

์นดํ…Œ๊ณ ๋ฆฌ:

์—…๋ฐ์ดํŠธ:

๋Œ“๊ธ€๋‚จ๊ธฐ๊ธฐ