๐ ์ธ์ฆ Authentication
- ์ฌ์ดํธ์ ์ ๊ทผํ๋ ์ฌ๋์ด ๋๊ตฌ์ธ์ง ์์คํ ์ด ์๊ธฐ ์ํ ๋ฐฉ์. ์ต๋ช ์ฌ์ฉ์ anonymous user ๋ฅผ ํ์ฉํ๋ ๊ฒฝ์ฐ๋ ์์ง๋ง ํน์ ๋ฆฌ์์ค์ ์ ๊ทผํ๊ฑฐ๋ ๊ฐ์ธํ๋ ์ฌ์ฉ์ฑ์ ๋ณด์ฅ ๋ฐ๊ธฐ ์ํด์๋ ๋ฐ๋์ ๋ก๊ทธ์ธ ํ๋ ๊ณผ์ ์ด ํ์ํ๋ค.
- ๋ก๊ทธ์ธ์ ๋ณดํต username/ password๋ฅผ ์ ๋ ฅํ๊ณ ๋ก๊ทธ์ธ ํ๋ ๊ฒฝ์ฐ์ sns ์ฌ์ดํธ๋ฅผ ํตํด ์ธ์ฆ์ ๋๋ฆฌํ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค.
๐ ์ธ๊ฐ ํน์ ๊ถํ Autnorization
- ์ฌ์ฉ์๊ฐ ๋๊ตฌ์ธ์ง ์์๋ค๋ฉด ์ฌ์ดํธ ๊ด๋ฆฌ์ ํน์ ์์คํ ์ ๋ก๊ทธ์ธํ ์ฌ์ฉ์๊ฐ ์ด๋ค ์ผ์ ํ ์ ์๋์ง ๊ถํ์ ์ค์ ํ๋ค. ๊ถํ์ ํน์ ํ์ด์ง์ ์ ๊ทผํ๊ฑฐ๋ ํน์ ๋ฆฌ์์ค์ ์ ๊ทผํ ์ ์๋ ๊ถํ ์ฌ๋ถ๋ฅผ ํ๋จํ๋๋ฐ ์ฌ์ฉ๋๋ค.
- ๊ฐ๋ฐ์๋ ๊ถํ์ด ์๋ ์ฌ์ฉ์์๊ฒ๋ง ํ์ด์ง๋ ๋ฆฌ์์ค ์ ๊ทผ์ ํ์ฉํ๋๋ก ์ฝ๋ฉํด์ผ ํ๋๋ฐ, ์ด๋ฐ ์ฝ๋๋ฅผ ์ฝ๊ฒ ์์ฑํ ์ ์๋๋ก ํ๋ ์์ํฌ๋ฅผ ์ ์กฑํ๋ ๊ฒ์ด Spring Security Framework๋ค.
- ํด๋น ์ฌ์ฉ์๊ฐ ์ด๋ค ๊ถํ์ ํ์ธํ๊ณ ์ถ์ ๋,
@GetMapping("/auth")
public Authentication auth( ){
return SecurityContextHolder.getContext( ).getAuthentication( );
}
- ์น์ฌ์ดํธ์ ๊ฐ์ธ ์ ๋ณด์ ๋ํด ์๋ฎฌ๋ ์ด์ ํด๋ณด๋ฉด, ์ฐ์ controller ์ SecurityMessage๋ฅผ ๋์์ค ํด๋์ค
- SecurityMessage์์ auth์ ๋ํ ์ ๋ณด๋ฅผ Authentication ํ์ผ๋ก ์ง์ ํ๋ค.
- @PreAuthorize๋ก hasAnyAuthority 'ROLE_UESR' , 'ROLE_ADMIN'์ ๋๋์๋ค.
- ํ์ง๋ง, ์ด ๋ฐฉ์์ด๋ผ๋ฉด user1์ด admin์๋ ๋ค์ด๊ฐ ์ ์๋ค. ์ด๊ฑธ security์์ ์ด๋ป๊ฒ ์ฐจ๋จํ๋๋.. Configurer๋ฅผ ์ฌ์ฉํ๋ค.
- WebSecurityConfigurerAdepter ๋ฅผ ์์๋ฐ์ Config ํด๋์ค๋ฅผ ๋ง๋ ๋ค.
- ๊ธฐ์กด์ application.properties์ ์ฌ์ฉ์ ํ๋ช ์ ์ถ๊ฐํ๊ธฐ์ ๋ ์ถ๊ฐํ ์ ์๋ค.
- ํด๋น SecurityConfig ์์ ์ฌ์ฉ์๋ฅผ ๋ ์ถ๊ฐํ๋ค. ์ด๋ ๊ฒ ๋๋ฉด application.properties์ ์ถ๊ฐํ๋ ์ฌ์ฉ์๋ ์ฐจ๋จ๋๋ค.
- ์ฌ์ฉ์์ ํจ์ค์๋๋ฅผ ์ธ์ฝ๋ฉํด์ผ ์ค๋ฅ๊ฐ ๋์ง ์๋๋ค.
- HOME Page ๊ฐ์ ๊ฒฝ์ฐ๋ ๋ชจ๋์๊ฒ publicํ๊ฒ ์ ๊ทผ๊ถํ์ ์ฃผ๊ณ ์ถ๊ธฐ ๋๋ฌธ์ request.antMatchers๋ก ("/") ํํ์ด์ง์ ๋ํด permitAll()์ ์ง์ ํด์ค๋ค.
'์ด๋ก > Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์คํ๋ง HTTP Message Body ์ Message Converter 1 (0) | 2021.11.20 |
---|---|
[TEST] ์คํ๋ง์์์ TEST, ๊ทธ๋ฆฌ๊ณ ์ผ๋ฐ์ TEST (0) | 2021.10.29 |
[Spring Boot] Spring MVC ๊ตฌ์กฐ / ํธ๋ค๋ฌ ๋งคํ๊ณผ ํธ๋ค๋ฌ ์ด๋ํฐ (0) | 2021.08.08 |
[Spring] ์ปดํฌ๋ํธ ์ค์บ๊ณผ ์์กด๊ด๊ณ ์๋ ์ฃผ์ ์์ํ๊ธฐ (0) | 2021.08.01 |
[Spring] @Configuration๊ณผ ๋ฐ์ดํธ์ฝ๋ ์กฐ์ (0) | 2021.07.26 |