Spring Boot에서 Basic Authentication을 설정하는 방법을 단계별로 정리해보겠습니다.
1. Spring Security 의존성 추가
Spring Boot 프로젝트에서 spring-boot-starter-security를 추가해야 합니다.
<dependencies>
<!-- Spring Boot Security -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<!-- Spring Boot Web -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
2. Security 설정 클래스 생성
Spring Security 설정을 직접 정의하려면 SecurityFilterChain을 설정해야 합니다.
@Configuration
@EnableWebSecurity
public class SecurityConfig {
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
http
.authorizeHttpRequests(auth -> auth
.requestMatchers("/public/**").permitAll() // 공개 API
.anyRequest().authenticated() // 그 외 인증 필요
)
.httpBasic(withDefaults()); // Basic Auth 활성화
return http.build();
}
@Bean
public UserDetailsService userDetailsService() {
UserDetails user = User.withDefaultPasswordEncoder()
.username("user")
.password("password")
.roles("USER")
.build();
return new InMemoryUserDetailsManager(user);
}
}
3. 테스트 컨트롤러 생성
인증이 필요한 엔드포인트와 공개 엔드포인트를 만들겠습니다.
@RestController
@RequestMapping("/api")
public class TestController {
@GetMapping("/public/hello")
public String publicHello() {
return "Hello, Public!";
}
@GetMapping("/private/hello")
public String privateHello() {
return "Hello, Authenticated User!";
}
}
4. 실행 및 테스트
기본 제공되는 유저 확인
Spring Boot를 실행하면 기본적으로 user 계정과 랜덤 비밀번호가 콘솔에 출력됩니다.
이를 사용하여 인증할 수 있으며, 또는 userDetailsService에서 설정한 계정을 사용할 수도 있습니다.
Postman 또는 Curl로 테스트
1) 공개 API 테스트
curl -X GET http://localhost:8080/api/public/hello
응답:
Hello, Public!
2) 인증 API 테스트
curl -u user:password -X GET http://localhost:8080/api/private/hello
응답:
Hello, Authenticated User!
5. 결론
이렇게 하면 Spring Boot에서 Basic Authentication을 손쉽게 설정할 수 있습니다.
이제 보안이 필요한 API에서는 기본 인증을 통해 접근을 제어할 수 있습니다.
'BackEND > Java' 카테고리의 다른 글
Spring Boot에서 캐시를 사용해야 하는 이유 (0) | 2025.03.27 |
---|---|
Java 11 Spring Boot에서 Swagger 설정 및 사용 방법 (1) | 2025.03.25 |
open jdk 1.8 버젼 다운로드 (0) | 2021.01.20 |
java 설치 시 환경 변수 변경 및 확인 (0) | 2021.01.20 |
spring boot mail 발송 (0) | 2021.01.20 |