Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 21 additions & 18 deletions backend/src/main/java/com/ai/lawyer/global/initData/InitData.java
Original file line number Diff line number Diff line change
Expand Up @@ -34,30 +34,33 @@ public InitData(MemberRepository memberRepository,
@Transactional
public void run(String... args) throws Exception {
//๊ด€๋ฆฌ์ž ๋กœ๊ทธ์ธ ์•„์ด๋””
String targetLoginId = "[email protected]";
log.info("InitData: checking password encoding for [{}]", targetLoginId);
List<String> targetLoginIds = List.of("[email protected]", "[email protected]");

Optional<Member> opt = memberRepository.findByLoginId(targetLoginId);
if (opt.isEmpty()) {
log.info("InitData: target account not found [{}]. ์•„๋ฌด ์ž‘์—…๋„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.", targetLoginId);
return;
}
for (String loginId : targetLoginIds) {
log.info("InitData: checking password encoding for [{}]", loginId);

Member member = opt.get();
String stored = member.getPassword();
Optional<Member> opt = memberRepository.findByLoginId(loginId);
if (opt.isEmpty()) {
log.info("InitData: target account not found [{}]. ์•„๋ฌด ์ž‘์—…๋„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.", loginId);
return;
}

if (isBcryptHash(stored)) {
log.info("InitData: {} ๊ณ„์ •์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” ์ด๋ฏธ bcrypt ํ•ด์‹œ์ž…๋‹ˆ๋‹ค. ๋ณ€๊ฒฝ ์—†์Œ.", targetLoginId);
return;
}
Member member = opt.get();
String stored = member.getPassword();

// ์—ฌ๊ธฐ์„œ stored๋Š” ํ‰๋ฌธ์œผ๋กœ ์ถ”์ •๋จ -> ์ ˆ๋Œ€ ๋กœ๊ทธ์— ์ฐ์ง€ ์•Š์Œ
String encoded = passwordEncoder.encode(stored);
if (isBcryptHash(stored)) {
log.info("InitData: {} ๊ณ„์ •์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” ์ด๋ฏธ bcrypt ํ•ด์‹œ์ž…๋‹ˆ๋‹ค. ๋ณ€๊ฒฝ ์—†์Œ.", loginId);
return;
}

member.updatePassword(encoded);
memberRepository.save(member);
// ์—ฌ๊ธฐ์„œ stored๋Š” ํ‰๋ฌธ์œผ๋กœ ์ถ”์ •๋จ -> ์ ˆ๋Œ€ ๋กœ๊ทธ์— ์ฐ์ง€ ์•Š์Œ
String encoded = passwordEncoder.encode(stored);

log.info("InitData: {} ๊ณ„์ •์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์•”ํ˜ธํ™”ํ•˜์—ฌ ์ €์žฅํ–ˆ์Šต๋‹ˆ๋‹ค.", targetLoginId);
member.updatePassword(encoded);
memberRepository.save(member);

log.info("InitData: {} ๊ณ„์ •์˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์•”ํ˜ธํ™”ํ•˜์—ฌ ์ €์žฅํ–ˆ์Šต๋‹ˆ๋‹ค.", loginId);
}
}

private boolean isBcryptHash(String s) {
Expand Down
19 changes: 19 additions & 0 deletions infra/main.tf
Original file line number Diff line number Diff line change
Expand Up @@ -418,6 +418,25 @@ docker run -d \
-c 'ollama serve & sleep 5 && ollama pull daynice/kure-v1:567m && wait'

echo "${var.github_access_token_1}" | docker login ghcr.io -u ${var.github_access_token_1_owner} --password-stdin
# zookeeper
docker run -d \
--name kafka \
--network common \
-p 9092:9092 \
-e KAFKA_BROKER_ID=1 \
-e KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181 \
-e KAFKA_LISTENER_SECURITY_PROTOCOL_MAP=PLAINTEXT:PLAINTEXT \
-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://kafka:9092 \
-e KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 \
confluentinc/cp-kafka:7.6.0

# kafka ์„ค์น˜
docker run -d \
--name zookeeper \
--network common \
-p 2181:2181 \
-e ALLOW_ANONYMOUS_LOGIN=yes \
bitnami/zookeeper:latest

END_OF_FILE
}
Expand Down
Loading