๐Spring Security 4
โ๏ธ BasicAuthenticationFilter
๋ก๊ทธ์ธ ํ์ด์ง๋ฅผ ์ฌ์ฉํ์ง ์๋ ์ํฉ์์ ์ฌ์ฉ๋๋ค. (ํผ ๋ก๊ทธ์ธ โ)
ex) SPA (react,vue,angular..), ๋ชจ๋ฐ์ผ์ฑ
โ๏ธ BasicAuthenticationFilter ์ค์
SecurityConfig
configure(HttpSecurity http)
http.httpBasic();
โ๏ธ BasicAuthenticationFilter ๋์
- Authorization ํค๋์ Basic ํ ํฐ์ ๊ฒ์ฆํ๋ค.
- Basic ํ ํฐ์ id, password๋ฅผ Base64๋ก ์ธ์ฝ๋ฉํ ๊ฐ์ผ๋ก ์ด๋ฃจ์ด์ง๋ค.
- Base64 ์ธ์ฝ๋ฉ์ ๋๊ตฌ๋ ๋์ฝ๋ฉ ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ๋ณด์์ ๋งค์ฐ ์ทจ์ฝํ๋ค.
- (๋ณด์์ ์ทจ์ฝํ๋ฏ๋ก https ํ๋กํ ์ฝ์ ์ฌ์ฉํ์ฌ ๋ณด์ํด์ผ ํ๋ค.)
โ๏ธ SPA์ ๋ก๊ทธ์ธ ๋ฐฉ์
- id,pw๋ฅผ ์ ๋ ฅ๋ฐ์ Basic ํ ํฐ์ ์ธ์ฝ๋ฉํ์ฌ ์๋ฒ๋ก ์ ์กํ๋ค.
- ์๋ฒ๋ ํ ํฐ ๊ฒ์ฆ ํ UserDetail ๊ฐ์ฒด๋ฅผ ๋ด๋ ค์ค๋ค.
- ๋งค ์์ฒญ๋ง๋ค ID/PW๋ฅผ ํค๋์ ๋ด์ ๋ณด๋ด๋ ๊ฒ์ ๋ณด์์ ์ทจ์ฝํ๋ค.
๋๋ฌธ์ Bearer๊ฐ์ ํ ํฐ์ ์ด์ฉํ๋ค. - Bearer ํ ํฐ์ ์ต์ด ์ธ์ฆ์ ๋ณด๋ฅผ ๋ฐ์ ๊ฒ์ฆํ๊ณ ์ต์ํ์ ์ ๋ณด๋ฅผ ํ ํฐ์ ๋ด์์ ํด๋ผ์ด์ธํธ์๊ฒ ๋ด๋ ค์ฃผ๊ณ ํด๋ผ์ด์ธํธํผ ์ดํ ์ ๋ฌ๋ฐ์ ํ ํฐ์ผ๋ก ์ธ์ฆ์ ์ํํ๋ค.
โ๏ธ BasicAuthenticationFilter Test
- ์ธ์ฆ์ด ํ์ํ ๋งคํ url ์ ์ ๋ฐ SecurityConfig ์ค์ ํ๋ค.
- ์ธ์ฆ์คํจ ํ
์คํธ
- ํด๋น url๋ก ํค๋ ์์ด ์์ฒญ
- ์์ธ๊ฐ ๋ฐ์ํ๋์ง ํ ์คํธ
- ์ธ์ฆ์ฑ๊ณต ํ
์คํธ
- Basic Token์ ํค๋์ ์ถ๊ฐ (id:pw ์ฝ๋ก ์ผ๋ก ๊ตฌ๋ถ)
HttpHeaders header = new HttpHeaders();
header.add(HttpHeaders.AUTHORIZATION, "Basic "+Base64.getEncoder().encodeToString("id:pw".getBytes()));
HttpEntity entity = new HttpEntity(null, header);
- ํค๋์ ํจ๊ป ์์ฒญ
exchange(url, HttpMethod.GET, entity, ๋ฆฌํดํ์ );
์ฐธ๊ณ
- TestRestTemplate์ ์๋์ผ๋ก BasicAuthentication์ ๋ํ Basicํ ํฐ์ ๊ตฌ์ฑํ๋ค.
- POST์ ๋ํ ํ ์คํธ์ csrf์ ๋ํ ์ค์ ์ด ํ์ํ๋ค.
โ๏ธ ์ธ์ฆ ์ ์ฑ ์ด 2๊ฐ ์ด์์ธ ๊ฒฝ์ฐ
์ผ๋ฐ์ ์ธ ์น์์์ ๋ก๊ทธ์ธ์ ํผ ๋ก๊ทธ์ธ์ผ๋ก ์ฒ๋ฆฌํ๋ค.
๋ชจ๋ฐ์ผ์น, SPA์ ๊ฒฝ์ฐ BasicAuthneicationFilter ๋ก ์ฒ๋ฆฌํ๋ค.
csrf.disabled()
โ๏ธ ๊ฐ๊ฐ ํํฐ์ฒด์ธ ์ค์ ์ ์ํ SpringSecurity ์์ฑ
- SpringSecurity - ์ผ๋ฐ์ ์ธ ํผ ๋ก๊ทธ์ธ์ ๋ํ ํํฐ์ฒด์ธ์ ์ค์ ํ๋ค .
/** @Order(1)
- MobileSpringSecurity - ๋ชจ๋ฐ์ผ,SPA์ ์ธ์ฆ์ ๋ํ ํํฐ์ฒด์ธ์ ์ค์ ํ๋ค.
/api/** @Order(2)
๐ ์๊ฐ์ธ์ฆ

ํจ์คํธ์บ ํผ์ค [์ง์ฅ์ธ ์ค๋ฌด๊ต์ก]
ํ๋ก๊ทธ๋๋ฐ, ์์ํธ์ง, UX/UI, ๋ง์ผํ , ๋ฐ์ดํฐ ๋ถ์, ์์ ๊ฐ์, The RED, ๊ตญ๋น์ง์, ๊ธฐ์ ๊ต์ก, ์๋น์ค ์ ๊ณต.
fastcampus.co.kr
๋ณธ ํฌ์คํ ์ ํจ์คํธ์บ ํผ์ค ํ๊ธ ์ฑ๋ฆฐ์ง ์ฐธ์ฌ๋ฅผ ์ํด ์์ฑ๋์์ต๋๋ค.
'Spring Security' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| ํจ์คํธ์บ ํผ์ค ์ฑ๋ฆฐ์ง 17์ผ์ฐจ - Spring Security 6 (0) | 2021.09.22 |
|---|---|
| ํจ์คํธ์บ ํผ์ค ์ฑ๋ฆฐ์ง 16์ผ์ฐจ - Spring Security 5 (0) | 2021.09.21 |
| ํจ์คํธ์บ ํผ์ค ์ฑ๋ฆฐ์ง 14์ผ์ฐจ - Spring Security 3 (0) | 2021.09.19 |
| ํจ์คํธ์บ ํผ์ค ์ฑ๋ฆฐ์ง 13์ผ์ฐจ - Spring Security 2 (0) | 2021.09.18 |
| ํจ์คํธ์บ ํผ์ค ์ฑ๋ฆฐ์ง 12์ผ์ฐจ - Spring Security 1 (0) | 2021.09.17 |