inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)

시큐리티 기본 설정

WebSecurityCustomizer 와 SecurityFilterChain 차이점에 대해 여쭙고싶어요

3138

falsystack

작성한 질문수 10

0

@Configuration
@EnableWebSecurity(debug = true) // 운용환경에서는 꼭 꺼야한다.
public class SecurityConfig {

    @Bean // Spring Security 무시시키기
    public WebSecurityCustomizer webSecurityCustomizer() {
        return new WebSecurityCustomizer() {
            @Override
            public void customize(WebSecurity web) {
                // /error -> spring에서 기본제공하는 것
                web.ignoring().requestMatchers("/favicon.ico", "/error")
//                        .requestMatchers(new AntPathRequestMatcher("/h2-console/**"));
                        // 멍청한 우리들을 위해 스프링이 제공해주신 위으 코드를 대신하는 메서드
                        .requestMatchers(toH2Console());
            }
        };
    }

    @Bean
    public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
        // and() 메서드가 deprecated되어 람다식으로 사용하라고 한다.
        return http.authorizeHttpRequests(authorizeHttpRequests -> {
            authorizeHttpRequests
                    .requestMatchers("/auth/login").permitAll()
                    .anyRequest().authenticated();
        }).csrf(AbstractHttpConfigurer::disable).build();
    }
}

안녕하세요 호돌맨님 위의 WebSecurityCustomizer에서 하는 일을 밑의 SecurityFilterChain에서도 할 수 있을것 같은데요 둘을 어떻게 사용방법을 구분해야할지 여쭙고 싶어요

30년차사수(ChatGPT) 에 물어보니

차이점:

둘 다 Spring Security의 핵심 요소이며 보안 구성과 필터 체인의 다른 측면을 다룹니다. 일반적으로 SecurityFilterChain을 사용하여 필터 체인을 정의하고, 필요에 따라 WebSecurityCustomizer를 사용하여 더 많은 세부 설정을 적용할 수 있습니다.

라는데.. 처음 Security를 접하다보니 감이 안잡히네용..

vue.js aws spring-boot jpa spring-security

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴이에요.

WebSecurityCustomizer와 SecurityFilterChain은 Spring Security에서 보안 구성을 커스터마이징할 수 있는 인터페이스입니다.

WebSecurityCustomizer는 Spring Security의 FilterChainProxy에 대한 커스터마이징을 위해 사용됩니다. WebSecurityCustomizer를 구현하면 customize() 메서드를 오버라이딩하여 필요한 보안 구성을 추가하거나 필터를 무시할 수 있습니다. 예를 들어, 위의 코드에서는 “/favicon.ico”, “/error”, “/h2-console” 경로를 무시하는 설정이 있습니다.

SecurityFilterChain은 HttpSecurity 구성을 위해 사용됩니다. SecurityFilterChain을 생성하는 방식은 다양하지만, 위의 코드에서는 authorizeHttpRequests() 메서드를 사용하여 인증과 권한 부여를 설정하고 있습니다. “/auth/login” 요청에 대해서는 인증을 거치지 않도록 설정하고, 나머지 모든 요청에 대해서는 인증이 필요하도록 설정하고 있습니다. 또한, csrf() 메서드를 사용하여 CSRF 보호 기능을 해제하고 있습니다.

요약하자면, WebSecurityCustomizer는 FilterChainProxy에 대한 커스터마이징을 담당하고, SecurityFilterChain은 HttpSecurity 구성을 담당합니다.

더 자세한 내용은 Spring Security 공식 문서를 참고하시면 도움이 될 것입니다.

더 궁금하신 점이 있으시면 언제든지 물어보세요. 좋은 하루 되세요!

Deprecated 관련 사항들

0

100

2

깃헙 collaboator 초대 관련

0

87

1

강의 듣다가 도커 이미지 생성시 각각도 가능하나 그렇게 사용하는데가 많은지 모르겠다라는 말을 듣고 남김니다

0

157

2

logout 후에 login 페이지 이동은 어디서 시켜주는건가요?

0

229

1

다중 데이터를 삭제 할 때

0

270

2

querydsl Q class 이슈

0

414

2

Windows WSL Vue 설정

2

246

1

Dip, @transactional

0

187

1

[vite] http proxy error: /auth/login

0

1043

2

로그인 하고 나서 GET요청으로 메인페이지 요청

0

234

2

GitHub Collaborator 초대 관련

0

256

2

Window에서 Vue.js 설정

0

321

2

(솔루션 수정)'tsyringe' Error: TypeInfo not known for "클래스명"

0

713

2

collaboator로 초대받을 수 있을까요??

0

283

2

SecurityMockContext 로부터 유저 정보를 가져오기

0

261

1

given 부분이 길어질 때 어떻게 처리하면 좋을까요?

0

317

1

섹션9 프론트의 코드를 보고싶습니다,,,

0

423

1

Spring Security - defaultSuccessUrl 질문

0

625

1

강의 화면이 나오지 않습니다. 음성과 자막만 나와요

0

302

1

JPAQueryFactory(em)의 객체 생성자 오류에 대해서 질문이 있습니다ㅜㅜ

0

690

2

ExceptionHandler가 AccessDeniedHandler(Http403Handler)를 먹어버리는 현상

0

1179

2

섹션10 언제 나오나요?

0

484

1

CommentService에서 Repository를 호출하지 않는데도

0

342

1

Editor....를 활용한 패턴에 질문있습니다.

0

494

1