ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

(๊ตฌ)Spring

[SpringBoot] Spring Security

yeahajeong 2021. 1. 20. 22:26
๋ฐ˜์‘ํ˜•

์ด๋ฒˆ์— ์Šคํ„ฐ๋””๋ฅผ ํ•˜๋ฉด์„œ spring security์— ๋Œ€ํ•ด ์ฒ˜์Œ ์ œ๋Œ€๋กœ ์ ‘ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ์ธ์Šคํƒ€๊ทธ๋žจ ํด๋ก  ํ”„๋กœ์ ํŠธ๋ฅผ ํ• ๋•Œ ์ธ์ฆ ๊ฐ™์€ ๊ฒฝ์šฐ์—๋Š” ์„ธ์…˜์„ ์‚ฌ์šฉํ–ˆ์—ˆ๊ณ  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ spring security๋ฅผ ์‚ฌ์šฉํ•˜๊ธด ํ–ˆ์ง€๋งŒ ์ด๊ฒƒ์ด ๋Œ€์ฒด ์–ด๋””์„œ ์“ฐ์ด๋Š”๊ฑด์ง€ ์ •ํ™•ํ•˜๊ฒŒ ์•Œ์ง€ ๋ชปํ–ˆ์—ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ Spring ๊ธฐ๋ฐ˜ ํ”„๋กœ์ ํŠธ๋Š” Spring Security๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž๋ฅผ ์‹๋ณ„ํ•˜๊ณ  ํŠน์ • ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค๊ณ  ํ•˜๋‹ˆ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ์—ด์‹ฌํžˆ ๊ตฌ๊ธ€๋งํ•˜๊ณ  ์ดํ•ดํ•œ ๊ฒƒ์„ ๊ธฐ๋กํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค.

 

1. Spring Security

์Šคํ”„๋ง ์ธ์ฆํ•˜๋ฉด ๋น ์งˆ ์ˆ˜ ์—†๋Š” ๊ฒƒ์ด Spring Security์ด๋‹ค. ๋Œ€๋ถ€๋ถ„ Spring ๊ธฐ๋ฐ˜ ํ”„๋กœ์ ํŠธ๋Š” Spring Security๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž๋ฅผ ์‹๋ณ„ํ•˜๊ณ  ํŠน์ • ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ์—ญํ• ์„ ๋ถ€์—ฌํ•œ๋‹ค. Spring Security๋Š” Spring ๊ธฐ๋ฐ˜์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ณด์•ˆ(์ธ์ฆ๊ณผ ๊ถŒํ•œ, ์ธ๊ฐ€ ๋“ฑ)์„ ๋‹ด๋‹นํ•˜๋Š” ์Šคํ”„๋ง ํ•˜์œ„ ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค.

[Security ์ธ์ฆ ๊ตฌ์กฐ]

[Spring Security Maven ๋“ฑ๋ก]

<!--Security-->
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-security</artifactId>
</dependency>

 

[Security Configure]

@Configuration
@EnableWebSecurity
public class WebSecurityConfigure extends WebSecurityConfigurerAdapter {
	//์„ธ๊ฐœ์˜ configure ๋ฉ”์†Œ๋“œ๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋”ฉ ํ•œ๋‹ค.
	
    @Override
    protected void configure(AuthenticationManagerBuilder auth) {
      //์‹ค์ œ ์ธ์ฆ์„ ์ง„ํ–‰ํ•  Provider 4๋ฒˆ์— ํ•ด๋‹น
      //DB๋กœ ๋ถ€ํ„ฐ ์•„์ด๋””, ๋น„๋ฒˆ์ด ๋งž๋Š”์ง€ ํ•ด๋‹น ์œ ์ €๊ฐ€ ์–ด๋–ค ๊ถŒํ•œ์„ ๊ฐ€์ง€๋Š”์ง€ ์ฒดํฌ
      //UserService ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์†๋ฐ›์€ ํด๋ž˜์Šค๊ฐ€ ์žˆ๋‹ค๋ฉด ๊ทธ ํด๋ž˜์Šค์—์„œ ์ธ์ฆ์„ ์‹œ๋„ํ•˜๋ฉด๋จ
    }
    
    @Override
    public void configure(WebSecurity web) {
	  //์ด๋ฏธ์ง€,์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ,css ๋””๋ ‰ํ† ๋ฆฌ ๋ณด์•ˆ ์„ค์ • (์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ์ฒ˜๋ฆฌ)
	}

    @Override
    protected void configure(HttpSecurity http) throws Exception {
	 //HTTP ๊ด€๋ จ ๋ณด์•ˆ ์„ค์ • **๊ฐ€์žฅ ์ค‘์š”**
     //URL ๋ณ„ ๊ถŒํ•œ ์„ค์ •, ๋กœ๊ทธ์ธ, ์„ธ์…˜ ๋“ฑ๋“ฑ
	}
}

 

๋ฐ˜์‘ํ˜•
๋Œ“๊ธ€