JAVA

[JAVA] JWT인증 토큰을 거치지 않는 예외 API 설정하기 방법1

오선지♬ 2024. 11. 22. 20:49
728x90
반응형

방법 1: HttpSecurity에서 permitAll() 사용

HttpSecurity를 활용해 경로에 대해 명시적으로 인증을 비활성화할 수 있습니다.

@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
    return http
            .httpBasic().disable() // 기본 인증 비활성화
            .csrf().disable() // CSRF 비활성화
            .authorizeHttpRequests()
            // JWT 인증 없이 허용할 API 경로
            .antMatchers("/api/public/**").permitAll()
            // 나머지 경로는 인증 필요
            .anyRequest().authenticated()
            .and()
            .sessionManagement()
            .sessionCreationPolicy(SessionCreationPolicy.STATELESS) // Stateless 모드
            .and()
            .addFilterBefore(jwtRequestFilter, UsernamePasswordAuthenticationFilter.class) // JWT 필터 추가
            .build();
}

주요 사항:

  1. antMatchers("/api/public/**").permitAll(): /api/public/**로 시작하는 모든 요청에 대해 인증을 우회합니다.
  2. anyRequest().authenticated(): 나머지 경로에 대해 인증을 요구합니다.
  3. JWT 필터 적용: jwtRequestFilter는 UsernamePasswordAuthenticationFilter 앞에서 동작하도록 설정합니다.
728x90
반응형