3차 프로젝트 Spring Security config
👉 WebSecurityConfig
@Configuration
@RequiredArgsConstructor
@EnableWebSecurity // 스프링 Security 지원을 가능하게 함
@EnableMethodSecurity(securedEnabled = true, prePostEnabled = true) // @Secured 어노테이션 활성화
public class WebSecurityConfig {
private final JwtUtil jwtUtil;
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
@Bean
public WebSecurityCustomizer webSecurityCustomizer() {
// h2-console 사용 및 resources 접근 허용 설정
return (web) -> web.ignoring()
.requestMatchers(PathRequest.toH2Console())
.requestMatchers(PathRequest.toStaticResources().atCommonLocations());
}
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
http.csrf().disable();
// 기본 설정인 Session 방식은 사용하지 않고 JWT 방식을 사용하기 위한 설정
http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
http.authorizeHttpRequests()
.requestMatchers("/api/users/**").permitAll()
.requestMatchers("/api/posts/**").permitAll()
.anyRequest().authenticated()
// JWT 인증/인가를 사용하기 위한 설정
.and().addFilterBefore(new JwtAuthFilter(jwtUtil), UsernamePasswordAuthenticationFilter.class);
http.formLogin();
return http.build();
}
🙋♂️ 소감 :
스프링부트 2.7.6 버전에서 사용하던 몇몇 설정들이 작동이 안되었다.ㅠㅠ
검색해보니 프로젝트는 3.0.0 버전으로 하는데 해당 버전에서는 config의 몇몇 설정들이 변경되었다고 해서
변경하였더니 정상적으로 작동이 된다 :)
😈 아는 내용이라고 그냥 넘어가지 않기! 😈
'❤️🔥TIL (Today I Learned)' 카테고리의 다른 글
[TIL] 2023-01-04(48day) (0) | 2023.01.04 |
---|---|
[TIL] 2023-01-03(47day) (0) | 2023.01.03 |
[TIL] 2022-12-30(45day) (0) | 2023.01.01 |
[TIL] 2022-12-29(44day) (0) | 2022.12.29 |
[TIL] 2022-12-28(43day) (0) | 2022.12.28 |
댓글