Spring Security + jwt 를 활용기에 대한 기록용 및 복습 포스트입니다.
- 초보개발자로써 혼자서 공부한 내용을 정리삼아 블로그에 작성하니 잘못된 점 바로잡아주시면 감사하겠습니다! -
SecurityFilterChain
먼저 Security 즉 보안에 관련하여 설정을 정의 해주는 SecurityConfiguarion Class 를 생성합니다.
위와 같이 저는 config 패키지에 생성을 했습니다. 개인의 편의로 사용하면 될거같아요
@Configuration
@EnableWebSecurity // Spring Security를 사용하도록 활성화
@RequiredArgsConstructor
public class SecurityConfiguration {
private final JwtAuthenticationFilter jwtAuthFilter;
private final AuthenticationProvider authenticationProvider;
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception { // HTTP 요청을 처리할 Spring Security 필터들의 체인
http
.csrf()
.disable()
.authorizeHttpRequests()
.requestMatchers("/api/v1/auth/**")
.permitAll() // 위의 url 들을 허용한다는 메소드
.anyRequest() // 그 외의 다른 경로들은
.authenticated() // 인증이 필요하다는 메소드
.and()
.sessionManagement() // 세션매니지먼트를
.sessionCreationPolicy(SessionCreationPolicy.STATELESS) // 세션을 무상태로 유지한다. 한마디로 jwt 쓰겠다는말
.and()
.authenticationProvider(authenticationProvider) // 인증절차를 정의하는 것
.addFilterBefore(jwtAuthFilter, UsernamePasswordAuthenticationFilter.class);
// jwtAuthFilter 를 UsernamePasswordAuthenticationFilter 보다 먼저 실행한다.
// 이렇게 함으로써 JWT 인증 필터가 우선적으로 실행되어 JWT 인증 정보를 처리할 수 있음
return http.build();
}
}
위의 클래스는 Spring Security를 사용하여 HTTP 요청을 인증 및 권한 부여하는 필터 체인을 설정하는 Java 설정 클래스입니다.
- securityFilterChain 메서드는 HTTP 요청을 처리하는 Spring Security 필터 체인을 설정
- 코드에 대한 자세한 설명은 주석을 확인해주세요!!
이제 DI를 통해 사용중인
private final JwtAuthenticationFilter jwtAuthFilter;
에 대한 구현 클래스를 다음포스트에 올리도록 하겠습니다!!.
- 짧게 올리는 이유는 복습에 대한 의미가 크기 때문에 자주 포스팅하여 코드를 자주 보고싶어 그렇습니다 -
'Spring' 카테고리의 다른 글
[트러블슈팅 기억 기록용] Querydsl(영속성 컨텍스트) (0) | 2024.02.16 |
---|---|
Spring Security + jwt 사용기(우당탕탕 주의) - 3 (0) | 2023.05.02 |
Spring Security + jwt 사용기(우당탕탕 주의) - 1 (0) | 2023.03.31 |
Spring Filter에 대하여 (0) | 2023.03.15 |
<Spring> ResponseEntity 에 대하여 (0) | 2023.03.02 |