cors 헤더 설정 추가

mongo 커넥션 설정 추가
This commit is contained in:
2025-10-20 17:56:46 +09:00
parent aee24675a6
commit a1006417ac
2 changed files with 38 additions and 1 deletions

View File

@@ -44,6 +44,12 @@ public class AuthenticationConfig {
corsConfiguration.setAllowedMethods(List.of("GET", "POST", "PUT", "DELETE", "PATCH"));
corsConfiguration.setAllowedHeaders(List.of("Authorization","Content-Type"));
corsConfiguration.setAllowCredentials(true);
corsConfiguration.setExposedHeaders(List.of(
"Content-Disposition",
"X-Filename",
"X-File-Type",
"Content-Length"
));
return corsConfiguration;
}))
.authorizeHttpRequests()

View File

@@ -2,6 +2,8 @@ package com.caliverse.admin.global.configuration;
import com.caliverse.admin.Indicators.indicatorrepository.MongoIndicatorRepository;
import com.mongodb.ConnectionString;
import com.mongodb.MongoClientSettings;
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import org.springframework.beans.factory.annotation.Qualifier;
@@ -15,6 +17,7 @@ import org.springframework.data.mongodb.repository.config.EnableMongoRepositorie
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.concurrent.TimeUnit;
@Configuration
@@ -56,7 +59,35 @@ public class MongoIndicatorConfig {
}else{
connection = String.format("mongodb+srv://%s%s/%s?retryWrites=true&w=majority&appName=backoffice-%s", auth, businessLogHost, db, activeProfile);
}
return MongoClients.create(connection);
MongoClientSettings settings = MongoClientSettings.builder()
.applyConnectionString(new ConnectionString(connection))
// 커넥션 풀 설정
.applyToConnectionPoolSettings(builder -> {
builder.maxSize(100) // 최대 연결 수
.minSize(10) // 최소 연결 수
.maxWaitTime(30, TimeUnit.SECONDS) // 연결 대기 시간
.maxConnectionLifeTime(0, TimeUnit.MILLISECONDS) // 연결 최대 수명 (0 = 무제한)
.maxConnectionIdleTime(0, TimeUnit.MILLISECONDS); // 연결 최대 유휴 시간 (0 = 무제한)
})
// 소켓 설정
.applyToSocketSettings(builder -> {
builder.connectTimeout(10, TimeUnit.SECONDS) // 연결 타임아웃
.readTimeout(0, TimeUnit.MILLISECONDS); // 읽기 타임아웃 (0 = 무제한)
})
// 서버 선택 설정
.applyToServerSettings(builder -> {
builder.heartbeatFrequency(10, TimeUnit.SECONDS) // 하트비트 주기
.minHeartbeatFrequency(500, TimeUnit.MILLISECONDS); // 최소 하트비트 주기
})
// 클러스터 설정
.applyToClusterSettings(builder -> {
builder.serverSelectionTimeout(30, TimeUnit.SECONDS) // 서버 선택 타임아웃
.localThreshold(15, TimeUnit.MILLISECONDS); // 로컬 임계값
})
.build();
return MongoClients.create(settings);
}
@Bean(name = "mongoIndicatorFactory")