Spring Security

[Spring Security] SecurityFilterChain ๋ณด์•ˆ ์„ค์ • ๋ฉ”์†Œ๋“œ ์„ค๋ช…

์šฐ์ฃผ๋ฌผ๊ณ ๊ธฐ 2025. 5. 4. 12:50
๋ฐ˜์‘ํ˜•
// ํŠน์ • HTTP ์š”์ฒญ์— ๋Œ€ํ•œ ์›น ๊ธฐ๋ฐ˜ ๋ณด์•ˆ ๊ตฌ์ •
    @Bean
    public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
        return http
                .authorizeHttpRequests(auth -> auth   // ํŠน์ • ๊ฒฝ๋กœ์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ์„ค์ •.
                        .requestMatchers("/login", "/signup", "/user").permitAll()
                        .anyRequest().authenticated())
                .formLogin(formLogin -> formLogin  // ํผ ๊ธฐ๋ฐ˜ ๋กœ๊ทธ์ธ ์„ค์ •
                        .loginPage("/login")
                        .defaultSuccessUrl("/articles")
                ).logout(logout -> logout  // ๋กœ๊ทธ์•„์›ƒ ์„ค์ •
                        .logoutSuccessUrl("/login")
                        .invalidateHttpSession(true)
                )
                .csrf(AbstractHttpConfigurer::disable)  // csrd ๋น„ํ™œ์„ฑํ™”
                .build();
    }

 

๋‚ด๊ฐ€ ์ง  ์ฝ”๋“œ๋Š” ์œ„์™€ ๊ฐ™์Œ.

โ€‹

โ€‹

์—ฌ๊ธฐ์„œ ํฌ๊ฒŒ ๋ณด๋ฉด

.authorizeHttpRequests()

.formLogin()

.logout()

.csrf()

์ด๋ ‡๊ฒŒ ์žˆ์Œ.

โ€‹

๋‚˜์˜ค๋Š” ๋ฉ”์†Œ๋“œ๋“ค์€ HttpSecurity ํƒ€์ž…์˜ http ๊ฐ์ฒด์— ๋ถ™๋Š” ๋ฉ”์†Œ๋“œ๋“ค์ž„.

HttpSecurity ๊ฐ์ฒด๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์„ค์ • ์˜ต์…˜์ด๋ผ๊ณ  ํ•จ.

โ€‹

authorizeHttpRequests(): ์ด ๋ฉ”์„œ๋“œ๋Š” URL ์š”์ฒญ์— ๋Œ€ํ•œ ์ ‘๊ทผ ๊ถŒํ•œ์„ ์„ค์ •ํ•˜๋Š” ๋ณด์•ˆ ๋ฒ”์œ„๋ฅผ ์ง€์ •

formLogin(): ๋กœ๊ทธ์ธ ํผ์— ๊ด€๋ จ๋œ ์„ค์ •์„ ๋‹ด๋‹นํ•˜๋Š” ๋ณด์•ˆ ๋ฒ”์œ„

logout(): ๋กœ๊ทธ์•„์›ƒ๊ณผ ๊ด€๋ จ๋œ ์„ค์ •์„ ๋‹ด๋‹นํ•˜๋Š” ๋ฒ”์œ„


 

< authorizeHttpRequests( ) >

.requestMatchers() : ํŠน์ • ์š”์ฒญ๊ณผ ์ผ์น˜ํ•˜๋Š” URL์— ๋Œ€ํ•œ ์—‘์„ธ์Šค๋ฅผ ์„ค์ •

.permitAll() : ๋ˆ„๊ตฌ๋‚˜ ์ธ์ฆ,์ธ๊ฐ€ ์—†์ด ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๊ฒŒ

.anyRequest() : ์œ„์—์„œ ์„ค์ •ํ•œ URL ์ด์™ธ์˜ ์š”์ฒญ์— ๋Œ€ํ•ด

.authenticated() : ์ธ๊ฐ€๋Š” ํ•„์š”X, ์ธ์ฆ์€ ๋˜์–ด์žˆ์–ด์•ผ ์ ‘๊ทผ ๊ฐ€๋Šฅ

โ€‹

< formLogin( ) >

.loginPage() : ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€์˜ ๊ฒฝ๋กœ๋ฅผ ์„ค์ •

.defaultSuccessUrl() : ๋กœ๊ทธ์ธ ์™„๋ฃŒ๋์„๋•Œ ์ด๋™ํ•  ๊ฒฝ๋กœ

โ€‹

< logout( ) >

.logOutSuccessUrl() : ๋กœ๊ทธ์•„์›ƒ ํ›„ ์ด๋™ํ•  ๊ฒฝ๋กœ

.invalidateHttpSession() : ๋กœ๊ทธ์•„์›ƒ ์ดํ›„ ์„ธ์…˜์„ ์ „์ฒด ์‚ญ์ œํ• ์ง€ ์—ฌ๋ถ€

โ€‹

< csrf( ) >

.csrf() : csrf ๊ณต๊ฒฉ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์„  ํ™œ์„ฑํ™”ํ•ด๋‘๋Š”๊ฒŒ ์ข‹์€๋ฐ, ์ง€๊ธˆ์€ ์‹ค์Šต ์ค‘์ด๋‹ˆ๊นŒ ๊บผ๋‘๊ฒ ์Œ

โ€‹

 

 

๋ฐ˜์‘ํ˜•