[Spring Boot] Spring Boot 3.x SecurityConfig 설정하기

AMUD·2023년 7월 19일
3

etc

목록 보기
2/5

Spring Boot 3.x과 Spring Security 6.x로 설정을 바꾸면서 deprecated된 기능들이 많아서 config 설정에 어려움을 겪어 공유하고자 한다.

🧙 build.gradle 설정

plugins {
	id 'java'
	id 'org.springframework.boot' version '3.1.1'
	id 'io.spring.dependency-management' version '1.1.0'
}

group = 'com.yukgaejang'
version = '0.0.1-SNAPSHOT'

java {
	sourceCompatibility = '17'
}

configurations {
	compileOnly {
		extendsFrom annotationProcessor
	}
}

repositories {
	mavenCentral()
}

dependencies {
	// 시큐리티 추가
	implementation 'org.springframework.boot:spring-boot-starter-security'
    
	implementation 'org.springframework.boot:spring-boot-starter-web'
	compileOnly 'org.projectlombok:lombok'
	annotationProcessor 'org.projectlombok:lombok'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
	testImplementation 'org.springframework.security:spring-security-test'
}

tasks.named('test') {
	useJUnitPlatform()
}

🍎 SecurityConfig.java 설정

기본적으로 csrf 비활성화 시키고, 특정 엔드포인트 (ex. "/member/join", "/auth/login")를 인가 예외시키는 설정이다. 대부분 람다식으로 처리되는 특징을 엿볼 수 있다.

@Configuration
@EnableWebSecurity
public class SecurityConfig {
    @Bean
    public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
        http
                .csrf(AbstractHttpConfigurer::disable);
        http
                .authorizeHttpRequests(
                        authorize -> authorize
                                .requestMatchers("/member/join").permitAll()
                                .requestMatchers("/auth/login").permitAll()
                                .anyRequest().authenticated()
                );
        return http.build();
    }
}
profile
210's Velog :: Ambition Makes Us Diligent

3개의 댓글

comment-user-thumbnail
2023년 7월 19일

무쳤다

답글 달기
comment-user-thumbnail
2023년 7월 19일

이런 정보를 찾고 있었습니다, 감사합니다.

답글 달기