
server.port=8761
eureka.client.register-with-euerka=false
eureka.client.fetch-registry=false
@Configuration
@EnableWebSecurity
public class SecurityConfig {
// 인코딩
@Bean
public BCryptPasswordEncoder bCryptPasswordEncoder() {
return new BCryptPasswordEncoder();
}
// 시큐리티 필터
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http.csrf((auth) -> auth.disable());
// 모든 경로에 대해 특정 권한 필요
http.authorizeHttpRequests((auth) -> auth.anyRequest().authenticated());
// httpBasic 통한 로그인
http.httpBasic(Customizer.withDefaults());
return http.build();
}
// 이 내부에 접근할 수 있는 id, pw
// 한두개이기 때문에 인메모리로 저장
@Bean
public UserDetailsService userDetailsService() {
UserDetails user1 = User.builder()
.username("admin")
.password(bCryptPasswordEncoder().encode("1234"))
.roles("ADMIN")
.build();
return new InMemoryUserDetailsManager(user1);
}
}
접속 후 eureka 대시보드. 현재는 연결된 인스턴스 없음.

MSA 구성 요소 중 모니터링 원하는 요소에 Eureka 클라이언트 설정 진행해 등록.

plugins {
id 'java'
id 'org.springframework.boot' version '3.2.3'
id 'io.spring.dependency-management' version '1.1.4'
}
group = 'com.example'
version = '0.0.1-SNAPSHOT'
java {
sourceCompatibility = '17'
}
repositories {
mavenCentral()
}
ext {
set('springCloudVersion', "2023.0.0")
}
dependencies {
implementation 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
dependencyManagement {
imports {
mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
}
}
tasks.named('test') {
useJUnitPlatform()
}
server.port=8080
spring.application.name=ms1
eureka.client.register-with-eureka=true #유레카 서버에 등록할지 여부
eureka.client.fetch-registry=true #유레카 서버의 정보를 가져올지 여부
eureka.client.service-url.defaultZone=http://아이디:비밀번호@아이피:8761/eureka #유레카 서버 주소
서버를 실행하면 eureka 대시보드에서 인스턴스가 뜨는 것을 확인할 수 있음.