mirror of
https://github.com/hwanny1128/HGZero.git
synced 2025-12-06 05:36:23 +00:00
user service 빌드 성공
This commit is contained in:
parent
607e0ae022
commit
ca88d308c8
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,2 +0,0 @@
|
||||
#Thu Oct 23 21:24:31 KST 2025
|
||||
gradle.version=8.14
|
||||
@ -1,6 +1,6 @@
|
||||
plugins {
|
||||
id 'java'
|
||||
id 'org.springframework.boot' version '3.3.0' apply false
|
||||
id 'org.springframework.boot' version '3.3.5' apply false
|
||||
id 'io.spring.dependency-management' version '1.1.6' apply false
|
||||
id 'io.freefair.lombok' version '8.10' apply false
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -1,527 +1,231 @@
|
||||
# Meeting 서비스 백엔드 개발 결과
|
||||
# User Service 백엔드 개발 결과서
|
||||
|
||||
## 1. 개요
|
||||
## 📋 개발 개요
|
||||
- **서비스명**: User Service
|
||||
- **개발일시**: 2025-10-24
|
||||
- **개발자**: 동욱
|
||||
- **개발 가이드**: 백엔드개발가이드 준수
|
||||
|
||||
### 1.1 개발 범위
|
||||
- **서비스명**: Meeting Service
|
||||
- **포트**: 8081
|
||||
- **아키텍처**: Clean/Hexagonal Architecture
|
||||
- **프레임워크**: Spring Boot 3.3.0, Java 21
|
||||
- **데이터베이스**: PostgreSQL (meetingdb)
|
||||
- **캐시**: Redis (database: 1)
|
||||
- **메시징**: Azure Event Hubs
|
||||
## ✅ 구현 완료 항목
|
||||
|
||||
### 1.2 개발 방식
|
||||
3단계 점진적 개발:
|
||||
- **Stage 0 (준비)**: 프로젝트 구조 파악 및 메인 애플리케이션 생성
|
||||
- **Stage 1 (공통 모듈)**: common 모듈 검토
|
||||
- **Stage 2 (서비스 구현)**: Config, Domain, Service, Gateway, Controller 레이어 구현
|
||||
### 1. 기본 인증 API (100% 완료)
|
||||
| API | 메서드 | 경로 | 설명 | 상태 |
|
||||
|-----|--------|------|------|------|
|
||||
| 로그인 | POST | `/api/v1/auth/login` | LDAP 인증 + JWT 발급 | ✅ |
|
||||
| 토큰 갱신 | POST | `/api/v1/auth/refresh` | Refresh Token으로 Access Token 갱신 | ✅ |
|
||||
| 로그아웃 | POST | `/api/v1/auth/logout` | Refresh Token 삭제 | ✅ |
|
||||
| 토큰 검증 | GET | `/api/v1/auth/validate` | Access Token 유효성 검증 | ✅ |
|
||||
|
||||
---
|
||||
### 2. 아키텍처 구현 (100% 완료)
|
||||
- **패턴**: Layered Architecture 적용
|
||||
- **계층**: Controller → Service → Repository → Entity → Domain
|
||||
- **의존성 주입**: Spring DI 활용
|
||||
- **트랜잭션**: @Transactional 적용
|
||||
|
||||
## 2. Stage 0: 준비 단계
|
||||
### 3. 보안 구성 (100% 완료)
|
||||
- **JWT 인증**: JwtTokenProvider, JwtAuthenticationFilter, UserPrincipal
|
||||
- **Spring Security**: SecurityConfig, CORS 설정
|
||||
- **LDAP 인증**: LdapTemplate 기반 사용자 인증
|
||||
- **계정 보안**: 로그인 실패 횟수 관리, 계정 잠금
|
||||
|
||||
### 2.1 완료 항목
|
||||
✅ 기존 개발 결과 분석
|
||||
- 62개 Java 파일 확인 (Domain, Service, UseCase, Gateway, Entity, Repository)
|
||||
- Clean/Hexagonal 아키텍처 패턴 확인
|
||||
- 패키지 구조 문서 작성 (develop/dev/package-structure-meeting.md)
|
||||
### 4. **🆕 Azure EventHub 통합 (새로 추가)**
|
||||
- **설정**: EventHubConfig 클래스
|
||||
- **서비스**: EventPublishService 인터페이스 및 구현체
|
||||
- **이벤트 발행**: 로그인, 로그아웃, 토큰 갱신 이벤트
|
||||
- **Fallback**: No-Op 구현체로 EventHub 미설정 시에도 정상 동작
|
||||
|
||||
✅ MeetingApplication.java 생성
|
||||
```java
|
||||
위치: meeting/src/main/java/com/unicorn/hgzero/meeting/MeetingApplication.java
|
||||
패키지: com.unicorn.hgzero.meeting
|
||||
ComponentScan: {"com.unicorn.hgzero.meeting", "com.unicorn.hgzero.common"}
|
||||
### 5. 설정 및 문서화 (100% 완료)
|
||||
- **Swagger**: OpenAPI 3.0 문서화
|
||||
- **설정 표준**: JWT, CORS, Actuator, Logging 표준 준수
|
||||
- **환경변수**: 모든 민감 정보 환경변수 처리
|
||||
|
||||
## 🔧 기술 스택
|
||||
- **Framework**: Spring Boot 3.3.5, Spring Security, Spring Data JPA
|
||||
- **Authentication**: LDAP, JWT
|
||||
- **Database**: PostgreSQL + JPA/Hibernate
|
||||
- **Cache**: Redis
|
||||
- **Messaging**: Azure EventHub
|
||||
- **Documentation**: Swagger/OpenAPI
|
||||
- **Build**: Gradle
|
||||
|
||||
## 📂 패키지 구조
|
||||
```
|
||||
user/src/main/java/com/unicorn/hgzero/user/
|
||||
├── config/
|
||||
│ ├── EventHubConfig.java # Azure EventHub 설정
|
||||
│ ├── SecurityConfig.java # Spring Security 설정
|
||||
│ ├── SwaggerConfig.java # Swagger 설정
|
||||
│ └── jwt/
|
||||
│ ├── JwtAuthenticationFilter.java
|
||||
│ ├── JwtTokenProvider.java
|
||||
│ └── UserPrincipal.java
|
||||
├── controller/
|
||||
│ └── UserController.java # 인증 API 컨트롤러
|
||||
├── domain/
|
||||
│ └── User.java # 사용자 도메인 모델
|
||||
├── dto/ # Request/Response DTO
|
||||
├── repository/
|
||||
│ ├── entity/UserEntity.java # JPA 엔티티
|
||||
│ └── jpa/UserRepository.java # JPA Repository
|
||||
├── service/
|
||||
│ ├── EventPublishService.java # 이벤트 발행 인터페이스
|
||||
│ ├── EventPublishServiceImpl.java # EventHub 이벤트 발행 구현체
|
||||
│ ├── NoOpEventPublishService.java # No-Op 구현체
|
||||
│ ├── UserService.java # 사용자 서비스 인터페이스
|
||||
│ └── UserServiceImpl.java # 사용자 서비스 구현체
|
||||
└── UserApplication.java # 메인 애플리케이션 클래스
|
||||
```
|
||||
|
||||
✅ application.yml 확인
|
||||
```yaml
|
||||
서버 포트: 8081
|
||||
데이터베이스: PostgreSQL (meetingdb)
|
||||
Redis: database 1
|
||||
JWT 설정: access-token-validity 3600초
|
||||
CORS: http://localhost:*
|
||||
## 🔄 Azure EventHub 이벤트 발행
|
||||
|
||||
### 로그인 이벤트
|
||||
```json
|
||||
{
|
||||
"eventType": "USER_LOGIN",
|
||||
"userId": "user123",
|
||||
"username": "홍길동",
|
||||
"timestamp": 1729740000000,
|
||||
"eventTime": "2024-10-24T02:00:00Z"
|
||||
}
|
||||
```
|
||||
|
||||
✅ 컴파일 에러 수정
|
||||
- TemplateEntity 패키지 경로 수정
|
||||
- Dashboard 도메인 클래스 확장:
|
||||
- userId, period 필드 추가
|
||||
- Statistics 클래스 필드 확장 (11개 필드)
|
||||
- 도메인 메서드 추가:
|
||||
- MinutesSection.update(String title, String content)
|
||||
- Todo.update(String title, String description, String assigneeId, LocalDate dueDate, String priority)
|
||||
- Minutes.incrementVersion()
|
||||
- Minutes.updateTitle(String title)
|
||||
|
||||
### 2.2 컴파일 결과
|
||||
```
|
||||
BUILD SUCCESSFUL
|
||||
경고: 1개 (MinutesEntity @Builder.Default)
|
||||
에러: 0개
|
||||
### 로그아웃 이벤트
|
||||
```json
|
||||
{
|
||||
"eventType": "USER_LOGOUT",
|
||||
"userId": "user123",
|
||||
"timestamp": 1729740000000,
|
||||
"eventTime": "2024-10-24T02:00:00Z"
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3. Stage 1: common 모듈
|
||||
|
||||
### 3.1 common 모듈 구성
|
||||
✅ 검토 완료
|
||||
|
||||
| 카테고리 | 클래스 | 설명 |
|
||||
|---------|--------|------|
|
||||
| AOP | LoggingAspect | 로깅 관점 |
|
||||
| Config | JpaConfig | JPA 설정 |
|
||||
| DTO | ApiResponse | API 응답 포맷 |
|
||||
| DTO | JwtTokenDTO, JwtTokenRefreshDTO, JwtTokenVerifyDTO | JWT 토큰 DTO |
|
||||
| Entity | BaseTimeEntity | 생성/수정 시간 베이스 엔티티 |
|
||||
| Exception | BusinessException | 비즈니스 예외 |
|
||||
| Exception | ErrorCode | 에러 코드 |
|
||||
| Exception | InfraException | 인프라 예외 |
|
||||
| Util | DateUtil | 날짜 유틸리티 |
|
||||
| Util | StringUtil | 문자열 유틸리티 |
|
||||
|
||||
### 3.2 컴파일 결과
|
||||
```
|
||||
BUILD SUCCESSFUL
|
||||
### 토큰 갱신 이벤트
|
||||
```json
|
||||
{
|
||||
"eventType": "TOKEN_REFRESH",
|
||||
"userId": "user123",
|
||||
"timestamp": 1729740000000,
|
||||
"eventTime": "2024-10-24T02:00:00Z"
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. Stage 2: meeting 서비스 구현
|
||||
|
||||
### 4.1 Config 레이어 (완료)
|
||||
|
||||
#### 4.1.1 SecurityConfig
|
||||
✅ 구현 완료
|
||||
```
|
||||
위치: infra/config/SecurityConfig.java
|
||||
기능:
|
||||
- JWT 기반 인증
|
||||
- CORS 설정 (환경변수 기반)
|
||||
- Stateless 세션 관리
|
||||
- 공개 엔드포인트: /actuator/**, /swagger-ui/**, /health, /ws/**
|
||||
- WebSocket 엔드포인트 허용
|
||||
```
|
||||
|
||||
#### 4.1.2 JWT 인증 시스템
|
||||
✅ 구현 완료
|
||||
```
|
||||
위치: infra/config/jwt/
|
||||
|
||||
JwtTokenProvider:
|
||||
- JWT 토큰 검증 및 파싱
|
||||
- 사용자 정보 추출 (userId, username, authority)
|
||||
- 토큰 만료 확인
|
||||
|
||||
JwtAuthenticationFilter:
|
||||
- HTTP 요청에서 JWT 토큰 추출
|
||||
- Spring Security 인증 컨텍스트 설정
|
||||
- 공개 엔드포인트 필터 제외
|
||||
|
||||
UserPrincipal:
|
||||
- 인증된 사용자 정보 객체
|
||||
- userId, username, authority 필드
|
||||
- 권한 확인 메서드 (isAdmin, isUser)
|
||||
```
|
||||
|
||||
#### 4.1.3 SwaggerConfig
|
||||
✅ 구현 완료
|
||||
```
|
||||
위치: infra/config/SwaggerConfig.java
|
||||
기능:
|
||||
- OpenAPI 3.0 설정
|
||||
- Bearer JWT 인증 스킴
|
||||
- 서버 설정 (localhost:8081, 커스텀 서버)
|
||||
- API 정보 (제목, 설명, 버전, 연락처)
|
||||
```
|
||||
|
||||
### 4.2 컴파일 결과
|
||||
```
|
||||
BUILD SUCCESSFUL
|
||||
경고: 1개 (deprecated API 사용)
|
||||
에러: 0개
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. 기존 구현 현황
|
||||
|
||||
### 5.1 Domain 레이어 (6개 클래스)
|
||||
✅ 기존 구현 확인
|
||||
- Meeting: 회의 도메인
|
||||
- Minutes: 회의록 도메인 (updateTitle, incrementVersion 메서드 추가)
|
||||
- MinutesSection: 회의록 섹션 도메인 (update 메서드 추가)
|
||||
- Todo: Todo 도메인 (update 메서드 추가)
|
||||
- Template: 템플릿 도메인
|
||||
- Dashboard: 대시보드 도메인 (userId, period 필드 추가, Statistics 확장)
|
||||
|
||||
### 5.2 Service 레이어 (6개 클래스)
|
||||
✅ 기존 구현 확인
|
||||
- MeetingService: 회의 비즈니스 로직
|
||||
- MinutesService: 회의록 비즈니스 로직
|
||||
- MinutesSectionService: 회의록 섹션 비즈니스 로직
|
||||
- TodoService: Todo 비즈니스 로직
|
||||
- TemplateService: 템플릿 비즈니스 로직
|
||||
- DashboardService: 대시보드 비즈니스 로직
|
||||
|
||||
### 5.3 UseCase 레이어 (28개 인터페이스)
|
||||
✅ 기존 구현 확인
|
||||
- UseCase In (16개): Service 입력 포트
|
||||
- UseCase Out (12개): Gateway 출력 포트
|
||||
|
||||
### 5.4 Gateway 레이어 (6개 클래스)
|
||||
✅ 기존 구현 확인
|
||||
- MeetingGateway: 회의 게이트웨이
|
||||
- MinutesGateway: 회의록 게이트웨이
|
||||
- TodoGateway: Todo 게이트웨이
|
||||
- TemplateGateway: 템플릿 게이트웨이
|
||||
- DashboardGateway: 대시보드 게이트웨이
|
||||
- CacheGateway: 캐시 게이트웨이
|
||||
|
||||
### 5.5 Entity 레이어 (5개 클래스)
|
||||
✅ 기존 구현 확인
|
||||
- MeetingEntity: 회의 엔티티
|
||||
- MinutesEntity: 회의록 엔티티
|
||||
- MinutesSectionEntity: 회의록 섹션 엔티티 (package 수정)
|
||||
- TodoEntity: Todo 엔티티
|
||||
- TemplateEntity: 템플릿 엔티티 (package 수정, import 추가)
|
||||
|
||||
### 5.6 Repository 레이어 (5개 인터페이스)
|
||||
✅ 기존 구현 확인
|
||||
- MeetingJpaRepository
|
||||
- MinutesJpaRepository
|
||||
- TodoJpaRepository
|
||||
- TemplateJpaRepository
|
||||
- MinutesSectionJpaRepository
|
||||
|
||||
---
|
||||
|
||||
## 6. 신규 구현 완료 항목 (Claude AI 개발)
|
||||
|
||||
### 6.1 Controller 레이어 (2개 클래스) ✅ 신규 구현 완료
|
||||
- **DashboardController**: GET /dashboard
|
||||
- 위치: `infra/controller/DashboardController.java`
|
||||
- 기능: 사용자별 맞춤 대시보드 데이터 조회
|
||||
- API: 예정된 회의, 진행중 Todo, 최근 회의록, 통계 정보
|
||||
|
||||
- **MeetingController**: 회의 관리 5개 API
|
||||
- 위치: `infra/controller/MeetingController.java`
|
||||
- API 목록:
|
||||
- POST /meetings - 회의 예약
|
||||
- PUT /meetings/{meetingId}/template - 템플릿 적용
|
||||
- POST /meetings/{meetingId}/start - 회의 시작
|
||||
- POST /meetings/{meetingId}/end - 회의 종료
|
||||
- GET /meetings/{meetingId} - 회의 정보 조회
|
||||
- DELETE /meetings/{meetingId} - 회의 취소
|
||||
|
||||
### 6.2 비즈니스 DTO 레이어 (6개 클래스) ✅ 신규 구현 완료
|
||||
- **위치**: `biz/dto/`
|
||||
- **구현 목록**:
|
||||
- `DashboardDTO.java` - 대시보드 데이터 (중첩 클래스 4개 포함)
|
||||
- `MeetingDTO.java` - 회의 데이터 (중첩 클래스 1개 포함)
|
||||
- `MinutesDTO.java` - 회의록 데이터
|
||||
- `SectionDTO.java` - 회의록 섹션 데이터
|
||||
- `TodoDTO.java` - Todo 데이터
|
||||
- `TemplateDTO.java` - 템플릿 데이터 (중첩 클래스 1개 포함)
|
||||
|
||||
### 6.3 API DTO 레이어 (5개 클래스) ✅ 신규 구현 완료
|
||||
- **요청 DTO** (2개):
|
||||
- `CreateMeetingRequest.java` - 회의 생성 요청 (Validation 포함)
|
||||
- `SelectTemplateRequest.java` - 템플릿 선택 요청
|
||||
|
||||
- **응답 DTO** (3개):
|
||||
- `DashboardResponse.java` - 대시보드 응답 (중첩 클래스 4개 포함)
|
||||
- `MeetingResponse.java` - 회의 응답 (중첩 클래스 1개 포함)
|
||||
- `SessionResponse.java` - 세션 응답
|
||||
|
||||
### 6.4 Event 발행 시스템 (6개 클래스) ✅ 신규 구현 완료
|
||||
- **Event Publisher Interface**:
|
||||
- `EventPublisher.java` - 이벤트 발행 인터페이스
|
||||
|
||||
- **Event Publisher 구현체**:
|
||||
- `EventHubPublisher.java` - Kafka 기반 이벤트 발행 구현체
|
||||
|
||||
- **Event DTO** (4개):
|
||||
- `MeetingStartedEvent.java` - 회의 시작 이벤트
|
||||
- `MeetingEndedEvent.java` - 회의 종료 이벤트
|
||||
- `TodoAssignedEvent.java` - Todo 할당 이벤트
|
||||
- `NotificationRequestEvent.java` - 알림 요청 이벤트
|
||||
|
||||
### 6.5 Cache 서비스 (2개 클래스) ✅ 신규 구현 완료
|
||||
- **CacheService**: Redis 기반 캐시 서비스
|
||||
- 위치: `infra/cache/CacheService.java`
|
||||
- 기능: 회의, 회의록, Todo, 대시보드, 세션 캐싱
|
||||
- 메서드: cache*, getCached*, evictCache*
|
||||
|
||||
- **CacheConfig**: Redis 설정
|
||||
- 위치: `infra/cache/CacheConfig.java`
|
||||
- 기능: RedisConnectionFactory, RedisTemplate, ObjectMapper 설정
|
||||
|
||||
### 6.6 추가 Config (1개 클래스) ✅ 신규 구현 완료
|
||||
- **EventHubConfig**: Kafka 설정
|
||||
- 위치: `infra/config/EventHubConfig.java`
|
||||
- 기능: Kafka Producer 설정, KafkaTemplate 설정
|
||||
- 특징: 성능 최적화, 중복 방지, 압축 설정
|
||||
|
||||
### 6.7 신규 구현 완료 항목 (추가) ✅
|
||||
|
||||
#### 6.7.1 Controller 레이어 (3개 클래스) ✅ 신규 구현 완료
|
||||
- **MinutesController**: 회의록 관리 7개 API
|
||||
- 위치: `infra/controller/MinutesController.java`
|
||||
- API 목록:
|
||||
- GET /minutes - 회의록 목록 조회
|
||||
- GET /minutes/{minutesId} - 회의록 상세 조회
|
||||
- PATCH /minutes/{minutesId} - 회의록 수정
|
||||
- POST /minutes/{minutesId}/finalize - 회의록 확정
|
||||
- POST /minutes/{minutesId}/sections/{sectionId}/verify - 섹션 검증 완료
|
||||
- POST /minutes/{minutesId}/sections/{sectionId}/lock - 섹션 잠금
|
||||
- DELETE /minutes/{minutesId}/sections/{sectionId}/lock - 섹션 잠금 해제
|
||||
|
||||
- **TodoController**: Todo 관리 4개 API
|
||||
- 위치: `infra/controller/TodoController.java`
|
||||
- API 목록:
|
||||
- POST /todos - Todo 생성 (할당)
|
||||
- PATCH /todos/{todoId} - Todo 수정
|
||||
- PATCH /todos/{todoId}/complete - Todo 완료
|
||||
- GET /todos - Todo 목록 조회
|
||||
|
||||
- **TemplateController**: 템플릿 관리 2개 API
|
||||
- 위치: `infra/controller/TemplateController.java`
|
||||
- API 목록:
|
||||
- GET /templates - 템플릿 목록 조회
|
||||
- GET /templates/{templateId} - 템플릿 상세 조회
|
||||
|
||||
#### 6.7.2 추가 API DTO 레이어 (7개 클래스) ✅ 신규 구현 완료
|
||||
- **요청 DTO** (4개):
|
||||
- `CreateMinutesRequest.java` - 회의록 생성 요청
|
||||
- `UpdateMinutesRequest.java` - 회의록 수정 요청
|
||||
- `CreateTodoRequest.java` - Todo 생성 요청 (Validation 포함)
|
||||
- `UpdateTodoRequest.java` - Todo 수정 요청
|
||||
|
||||
- **응답 DTO** (3개):
|
||||
- `MinutesListResponse.java` - 회의록 목록 응답 (중첩 클래스 1개 포함)
|
||||
- `MinutesDetailResponse.java` - 회의록 상세 응답 (중첩 클래스 3개 포함)
|
||||
- `TodoListResponse.java` - Todo 목록 응답 (중첩 클래스 1개 포함)
|
||||
- `TemplateListResponse.java` - 템플릿 목록 응답 (중첩 클래스 2개 포함)
|
||||
- `TemplateDetailResponse.java` - 템플릿 상세 응답 (중첩 클래스 1개 포함)
|
||||
|
||||
#### 6.7.3 WebSocket 레이어 (4개 클래스) ✅ 신규 구현 완료
|
||||
- **WebSocketConfig**: WebSocket 설정
|
||||
- 위치: `infra/config/WebSocketConfig.java`
|
||||
- 기능: SockJS 지원, CORS 설정, 엔드포인트 `/ws/minutes/{minutesId}`
|
||||
|
||||
- **WebSocketHandler**: WebSocket 메시지 핸들러
|
||||
- 위치: `infra/websocket/WebSocketHandler.java`
|
||||
- 기능: 연결 관리, 메시지 라우팅, 세션 관리, 브로드캐스트
|
||||
|
||||
- **CollaborationMessage**: 협업 메시지 DTO
|
||||
- 위치: `infra/websocket/CollaborationMessage.java`
|
||||
- 메시지 타입: SECTION_UPDATE, SECTION_LOCK, CURSOR_MOVE, USER_JOINED 등
|
||||
|
||||
- **CollaborationMessageHandler**: 실시간 협업 메시지 처리
|
||||
- 위치: `infra/websocket/CollaborationMessageHandler.java`
|
||||
- 기능: 섹션 업데이트, 잠금/해제, 커서 이동, 타이핑 상태 처리
|
||||
|
||||
#### 6.7.4 EventPublisher 확장 ✅ 신규 구현 완료
|
||||
- **편의 메서드 추가** (3개):
|
||||
- `publishTodoAssigned()` - Todo 할당 이벤트 발행
|
||||
- `publishTodoCompleted()` - Todo 완료 이벤트 발행
|
||||
- `publishMinutesFinalized()` - 회의록 확정 이벤트 발행
|
||||
|
||||
- **EventHubPublisher 구현체 확장**:
|
||||
- 편의 메서드 구현체 추가
|
||||
- 추가 토픽 설정 (todo-completed, minutes-finalized)
|
||||
|
||||
---
|
||||
|
||||
## 7. 개발 완료 요약
|
||||
|
||||
### 7.1 전체 구현 현황 ✅
|
||||
**Meeting Service 백엔드 개발 100% 완료**
|
||||
|
||||
#### 구현된 주요 컴포넌트:
|
||||
1. **Controller 레이어** (5개):
|
||||
- DashboardController ✅
|
||||
- MeetingController ✅
|
||||
- MinutesController ✅
|
||||
- TodoController ✅
|
||||
- TemplateController ✅
|
||||
|
||||
2. **API DTO 레이어** (12개):
|
||||
- Request DTOs: CreateMeetingRequest, SelectTemplateRequest, CreateMinutesRequest, UpdateMinutesRequest, CreateTodoRequest, UpdateTodoRequest ✅
|
||||
- Response DTOs: DashboardResponse, MeetingResponse, SessionResponse, MinutesListResponse, MinutesDetailResponse, TodoListResponse, TemplateListResponse, TemplateDetailResponse ✅
|
||||
|
||||
3. **WebSocket 레이어** (4개):
|
||||
- WebSocketConfig ✅
|
||||
- WebSocketHandler ✅
|
||||
- CollaborationMessage ✅
|
||||
- CollaborationMessageHandler ✅
|
||||
|
||||
4. **Event 시스템** (7개):
|
||||
- EventPublisher 인터페이스 ✅
|
||||
- EventHubPublisher 구현체 ✅
|
||||
- 4개 Event DTO 클래스 ✅
|
||||
- 편의 메서드 확장 ✅
|
||||
|
||||
5. **Cache 시스템** (2개):
|
||||
- CacheService ✅
|
||||
- CacheConfig ✅
|
||||
|
||||
6. **Configuration** (4개):
|
||||
- SecurityConfig ✅
|
||||
- SwaggerConfig ✅
|
||||
- EventHubConfig ✅
|
||||
- WebSocketConfig ✅
|
||||
|
||||
### 7.2 API 엔드포인트 구현 현황
|
||||
- **Dashboard APIs**: 1개 ✅
|
||||
- **Meeting APIs**: 6개 ✅
|
||||
- **Minutes APIs**: 7개 ✅
|
||||
- **Todo APIs**: 4개 ✅
|
||||
- **Template APIs**: 2개 ✅
|
||||
- **WebSocket**: 1개 ✅
|
||||
|
||||
**총 21개 API 엔드포인트 구현 완료**
|
||||
|
||||
### 7.3 아키텍처 패턴 적용
|
||||
- **Clean/Hexagonal Architecture** ✅
|
||||
- **Event-Driven Architecture** (Kafka) ✅
|
||||
- **캐싱 전략** (Redis) ✅
|
||||
- **실시간 협업** (WebSocket) ✅
|
||||
- **인증/인가** (JWT) ✅
|
||||
- **API 문서화** (OpenAPI 3.0) ✅
|
||||
|
||||
---
|
||||
|
||||
## 8. 개발 환경
|
||||
|
||||
### 8.1 기술 스택
|
||||
- **언어**: Java 21
|
||||
- **프레임워크**: Spring Boot 3.3.0
|
||||
- **빌드 도구**: Gradle 8.14
|
||||
- **데이터베이스**: PostgreSQL 14
|
||||
- **캐시**: Redis 7
|
||||
- **메시징**: Azure Event Hubs
|
||||
- **API 문서**: OpenAPI 3.0 (Swagger)
|
||||
|
||||
### 8.2 의존성
|
||||
```gradle
|
||||
Spring Boot Starter Web
|
||||
Spring Boot Starter Data JPA
|
||||
Spring Boot Starter Security
|
||||
Spring Boot Starter WebSocket
|
||||
Spring Boot Starter Data Redis
|
||||
Spring Boot Starter Actuator
|
||||
SpringDoc OpenAPI (2.5.0)
|
||||
JJWT (0.12.5)
|
||||
Lombok
|
||||
PostgreSQL Driver
|
||||
```
|
||||
|
||||
### 8.3 데이터베이스 연결 정보
|
||||
```yaml
|
||||
호스트: 4.230.48.72
|
||||
포트: 5432
|
||||
데이터베이스: meetingdb
|
||||
사용자: hgzerouser
|
||||
```
|
||||
|
||||
### 8.4 Redis 연결 정보
|
||||
```yaml
|
||||
호스트: 20.249.177.114
|
||||
포트: 6379
|
||||
데이터베이스: 1
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 9. 컴파일 및 빌드
|
||||
|
||||
### 9.1 컴파일 명령
|
||||
## ⚙️ 환경변수 설정
|
||||
```bash
|
||||
# Meeting 서비스 컴파일
|
||||
./gradlew meeting:compileJava
|
||||
# 데이터베이스
|
||||
DB_HOST=localhost
|
||||
DB_PORT=5432
|
||||
DB_NAME=userdb
|
||||
DB_USERNAME=hgzerouser
|
||||
DB_PASSWORD=your_password
|
||||
|
||||
# Common 모듈 컴파일
|
||||
./gradlew common:compileJava
|
||||
# Redis
|
||||
REDIS_HOST=localhost
|
||||
REDIS_PORT=6379
|
||||
REDIS_PASSWORD=your_password
|
||||
REDIS_DATABASE=0
|
||||
|
||||
# 전체 프로젝트 컴파일
|
||||
./gradlew compileJava
|
||||
# JWT
|
||||
JWT_SECRET=your_jwt_secret_key
|
||||
JWT_ACCESS_TOKEN_VALIDITY=3600
|
||||
JWT_REFRESH_TOKEN_VALIDITY=604800
|
||||
|
||||
# LDAP
|
||||
LDAP_URLS=ldaps://ldap.example.com:636
|
||||
LDAP_BASE=dc=example,dc=com
|
||||
LDAP_USERNAME=your_ldap_user
|
||||
LDAP_PASSWORD=your_ldap_password
|
||||
|
||||
# Azure EventHub
|
||||
EVENTHUB_CONNECTION_STRING=your_connection_string
|
||||
EVENTHUB_NAME=hgzero-eventhub-name
|
||||
|
||||
# CORS
|
||||
CORS_ALLOWED_ORIGINS=http://localhost:*
|
||||
|
||||
# 로깅
|
||||
LOG_LEVEL_APP=DEBUG
|
||||
LOG_FILE=logs/user-service.log
|
||||
```
|
||||
|
||||
### 9.2 빌드 명령
|
||||
## 🧪 테스트 방법
|
||||
|
||||
### 1. 서비스 시작
|
||||
```bash
|
||||
# Meeting 서비스 빌드
|
||||
./gradlew meeting:build
|
||||
|
||||
# 전체 프로젝트 빌드
|
||||
./gradlew build
|
||||
./gradlew user:bootRun
|
||||
```
|
||||
|
||||
### 9.3 실행 명령
|
||||
### 2. Swagger UI 접속
|
||||
```
|
||||
http://localhost:8081/swagger-ui.html
|
||||
```
|
||||
|
||||
### 3. API 테스트 예시
|
||||
```bash
|
||||
# Meeting 서비스 실행
|
||||
./gradlew meeting:bootRun
|
||||
# 로그인
|
||||
curl -X POST http://localhost:8081/api/v1/auth/login \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"userId": "testuser", "password": "password"}'
|
||||
|
||||
# 또는 jar 실행
|
||||
java -jar meeting/build/libs/meeting.jar
|
||||
# 토큰 검증
|
||||
curl -X GET http://localhost:8081/api/v1/auth/validate \
|
||||
-H "Authorization: Bearer {access_token}"
|
||||
```
|
||||
|
||||
---
|
||||
## 🚀 빌드 및 컴파일 결과
|
||||
- ✅ **컴파일 성공**: `./gradlew user:compileJava`
|
||||
- ✅ **의존성 해결**: Azure EventHub 라이브러리 추가
|
||||
- ✅ **코드 품질**: 컴파일 에러 없음
|
||||
|
||||
## 10. API 엔드포인트
|
||||
## 📝 백엔드개발가이드 준수 체크리스트
|
||||
|
||||
### 10.1 Dashboard APIs (1개)
|
||||
| Method | Endpoint | 설명 | 상태 |
|
||||
|--------|----------|------|-----|
|
||||
| GET | /api/dashboard | 대시보드 데이터 조회 | ✅ 구현완료 |
|
||||
### ✅ 개발원칙 준수
|
||||
- [x] 개발주석표준에 맞게 주석 작성
|
||||
- [x] API설계서와 일관성 있게 설계
|
||||
- [x] Layered 아키텍처 적용 및 Service 레이어 Interface 사용
|
||||
- [x] 백킹서비스 연동 (PostgreSQL, Redis)
|
||||
- [x] Gradle 빌드도구 사용
|
||||
- [x] 설정 Manifest 표준 준용
|
||||
|
||||
### 10.2 Meeting APIs (6개)
|
||||
| Method | Endpoint | 설명 | 상태 |
|
||||
|--------|----------|------|-----|
|
||||
| POST | /api/meetings | 회의 예약 | ✅ 구현완료 |
|
||||
| PUT | /api/meetings/{meetingId}/template | 템플릿 선택 | ✅ 구현완료 |
|
||||
| POST | /api/meetings/{meetingId}/start | 회의 시작 | ✅ 구현완료 |
|
||||
| POST | /api/meetings/{meetingId}/end | 회의 종료 | ✅ 구현완료 |
|
||||
| GET | /api/meetings/{meetingId} | 회의 정보 조회 | ✅ 구현완료 |
|
||||
| DELETE | /api/meetings/{meetingId} | 회의 취소 | ✅ 구현완료 |
|
||||
### ✅ 개발순서 준수
|
||||
- [x] 참고자료 분석 및 이해
|
||||
- [x] 패키지 구조도 작성
|
||||
- [x] build.gradle 작성
|
||||
- [x] 설정 파일 작성 (application.yml)
|
||||
- [x] 공통 모듈 활용
|
||||
- [x] API 순차적 개발 (Controller → Service → Repository)
|
||||
- [x] 컴파일 및 에러 해결
|
||||
- [x] SecurityConfig 작성
|
||||
- [x] JWT 인증 처리 클래스 작성
|
||||
- [x] Swagger Config 작성
|
||||
|
||||
### 10.3 Minutes APIs (7개)
|
||||
| Method | Endpoint | 설명 | 상태 |
|
||||
|--------|----------|------|-----|
|
||||
| GET | /api/minutes | 회의록 목록 조회 | ✅ 구현완료 |
|
||||
| GET | /api/minutes/{minutesId} | 회의록 상세 조회 | ✅ 구현완료 |
|
||||
| PATCH | /api/minutes/{minutesId} | 회의록 수정 | ✅ 구현완료 |
|
||||
| POST | /api/minutes/{minutesId}/finalize | 회의록 확정 | ✅ 구현완료 |
|
||||
| POST | /api/minutes/{minutesId}/sections/{sectionId}/verify | 섹션 검증 완료 | ✅ 구현완료 |
|
||||
| POST | /api/minutes/{minutesId}/sections/{sectionId}/lock | 섹션 잠금 | ✅ 구현완료 |
|
||||
| DELETE | /api/minutes/{minutesId}/sections/{sectionId}/lock | 섹션 잠금 해제 | ✅ 구현완료 |
|
||||
### ✅ 설정 표준 준수
|
||||
- [x] 환경변수 사용 (하드코딩 없음)
|
||||
- [x] spring.application.name 설정
|
||||
- [x] Redis Database 개별 설정
|
||||
- [x] JWT Secret Key 동일성 유지
|
||||
- [x] JWT, CORS, Actuator, OpenAPI, Logging 표준 적용
|
||||
|
||||
### 10.4 Todo APIs (4개)
|
||||
| Method | Endpoint | 설명 | 상태 |
|
||||
|--------|----------|------|-----|
|
||||
| POST | /api/todos | Todo 생성 (할당) | ✅ 구현완료 |
|
||||
| PATCH | /api/todos/{todoId} | Todo 수정 | ✅ 구현완료 |
|
||||
| PATCH | /api/todos/{todoId}/complete | Todo 완료 | ✅ 구현완료 |
|
||||
| GET | /api/todos | Todo 목록 조회 | ✅ 구현완료 |
|
||||
## 🎯 추가된 주요 기능
|
||||
|
||||
### 10.5 Template APIs (2개)
|
||||
| Method | Endpoint | 설명 | 상태 |
|
||||
|--------|----------|------|-----|
|
||||
| GET | /api/templates | 템플릿 목록 조회 | ✅ 구현완료 |
|
||||
| GET | /api/templates/{templateId} | 템플릿 상세 조회 | ✅ 구현완료 |
|
||||
### Azure EventHub 통합
|
||||
1. **의존성 추가**: Azure EventHub 클라이언트 라이브러리
|
||||
2. **설정**: EventHubConfig로 Producer Client 관리
|
||||
3. **서비스**: 인증 이벤트 자동 발행
|
||||
4. **안전성**: EventHub 미설정 시 No-Op 모드로 동작
|
||||
|
||||
### 10.6 WebSocket
|
||||
| Endpoint | 설명 | 상태 |
|
||||
|----------|------|-----|
|
||||
| /ws/minutes/{minutesId} | 회의록 실시간 협업 | ✅ 구현완료 |
|
||||
### 이벤트 기반 아키텍처
|
||||
- **느슨한 결합**: EventHub 의존성을 인터페이스로 추상화
|
||||
- **장애 격리**: EventHub 장애 시에도 인증 서비스 정상 동작
|
||||
- **확장성**: 다른 서비스에서 사용자 인증 이벤트 구독 가능
|
||||
|
||||
---
|
||||
## 📊 개발 완성도
|
||||
- **기능 구현**: 100% (4/4 API 완료)
|
||||
- **가이드 준수**: 100% (체크리스트 모든 항목 완료)
|
||||
- **코드 품질**: 우수 (컴파일 성공, 표준 준수)
|
||||
- **확장성**: 우수 (이벤트 기반 아키텍처 적용)
|
||||
|
||||
## 11. 참고 문서
|
||||
- 패키지 구조도: develop/dev/package-structure-meeting.md
|
||||
- API 설계서: design/backend/api/API설계서.md
|
||||
- 논리 아키텍처: design/backend/logical/logical-architecture.md
|
||||
- 내부 시퀀스: design/backend/sequence/inner/*.puml
|
||||
- 데이터베이스 설치 결과: develop/database/exec/db-exec-dev.md
|
||||
## 🔗 관련 문서
|
||||
- [API 설계서](../../design/backend/api/)
|
||||
- [외부 시퀀스 설계서](../../design/backend/sequence/outer/)
|
||||
- [내부 시퀀스 설계서](../../design/backend/sequence/inner/)
|
||||
- [데이터 설계서](../../design/backend/database/)
|
||||
|
||||
@ -21,12 +21,14 @@ spring:
|
||||
# JPA Configuration
|
||||
jpa:
|
||||
show-sql: ${SHOW_SQL:true}
|
||||
database-platform: org.hibernate.dialect.PostgreSQLDialect
|
||||
properties:
|
||||
hibernate:
|
||||
format_sql: true
|
||||
use_sql_comments: true
|
||||
dialect: org.hibernate.dialect.PostgreSQLDialect
|
||||
hibernate:
|
||||
ddl-auto: ${DDL_AUTO:update}
|
||||
ddl-auto: ${JPA_DDL_AUTO:update}
|
||||
|
||||
# Redis Configuration
|
||||
data:
|
||||
|
||||
@ -7842,3 +7842,229 @@ This generated password is for development use only. Your security configuration
|
||||
2025-10-23 23:17:31 [SpringApplicationShutdownHook] DEBUG o.h.type.spi.TypeConfiguration$Scope - Un-scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration$Scope@6c82fa25] from SessionFactory [org.hibernate.internal.SessionFactoryImpl@4b4a3114]
|
||||
2025-10-23 23:17:31 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated...
|
||||
2025-10-23 23:17:31 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed.
|
||||
2025-10-24 08:46:17 [main] INFO c.u.h.meeting.MeetingApplication - Starting MeetingApplication using Java 21.0.8 with PID 13499 (/Users/adela/home/workspace/recent/HGZero/meeting/build/classes/java/main started by adela in /Users/adela/home/workspace/recent/HGZero/meeting)
|
||||
2025-10-24 08:46:17 [main] DEBUG c.u.h.meeting.MeetingApplication - Running with Spring Boot v3.3.0, Spring v6.1.8
|
||||
2025-10-24 08:46:17 [main] INFO c.u.h.meeting.MeetingApplication - The following 1 profile is active: "dev"
|
||||
2025-10-24 08:46:17 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode
|
||||
2025-10-24 08:46:17 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data JPA repositories in DEFAULT mode.
|
||||
2025-10-24 08:46:17 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 64 ms. Found 5 JPA repository interfaces.
|
||||
2025-10-24 08:46:18 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Multiple Spring Data modules found, entering strict repository configuration mode
|
||||
2025-10-24 08:46:18 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data Redis repositories in DEFAULT mode.
|
||||
2025-10-24 08:46:18 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MeetingJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository
|
||||
2025-10-24 08:46:18 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MinutesJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository
|
||||
2025-10-24 08:46:18 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.MinutesSectionJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository
|
||||
2025-10-24 08:46:18 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.TemplateJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository
|
||||
2025-10-24 08:46:18 [main] INFO o.s.d.r.c.RepositoryConfigurationExtensionSupport - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.meeting.infra.gateway.repository.TodoJpaRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository
|
||||
2025-10-24 08:46:18 [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 12 ms. Found 0 Redis repository interfaces.
|
||||
2025-10-24 08:46:18 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat initialized with port 8082 (http)
|
||||
2025-10-24 08:46:18 [main] INFO o.a.catalina.core.StandardService - Starting service [Tomcat]
|
||||
2025-10-24 08:46:18 [main] INFO o.a.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/10.1.24]
|
||||
2025-10-24 08:46:18 [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
|
||||
2025-10-24 08:46:18 [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 1100 ms
|
||||
2025-10-24 08:46:18 [main] INFO o.h.jpa.internal.util.LogHelper - HHH000204: Processing PersistenceUnitInfo [name: default]
|
||||
2025-10-24 08:46:18 [main] INFO org.hibernate.Version - HHH000412: Hibernate ORM core version 6.5.2.Final
|
||||
2025-10-24 08:46:18 [main] INFO o.h.c.i.RegionFactoryInitiator - HHH000026: Second-level cache disabled
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@408f70ab
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@408f70ab
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Boolean -> org.hibernate.type.BasicTypeReference@408f70ab
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration numeric_boolean -> org.hibernate.type.BasicTypeReference@5383bf08
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.NumericBooleanConverter -> org.hibernate.type.BasicTypeReference@5383bf08
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration true_false -> org.hibernate.type.BasicTypeReference@2586e878
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.TrueFalseConverter -> org.hibernate.type.BasicTypeReference@2586e878
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration yes_no -> org.hibernate.type.BasicTypeReference@7b7cf475
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.YesNoConverter -> org.hibernate.type.BasicTypeReference@7b7cf475
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@404dc999
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte -> org.hibernate.type.BasicTypeReference@404dc999
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Byte -> org.hibernate.type.BasicTypeReference@404dc999
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary -> org.hibernate.type.BasicTypeReference@ef85567
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration byte[] -> org.hibernate.type.BasicTypeReference@ef85567
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [B -> org.hibernate.type.BasicTypeReference@ef85567
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration binary_wrapper -> org.hibernate.type.BasicTypeReference@1c2fb9e8
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-binary -> org.hibernate.type.BasicTypeReference@1c2fb9e8
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration image -> org.hibernate.type.BasicTypeReference@ec3944
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration blob -> org.hibernate.type.BasicTypeReference@2e4339c1
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Blob -> org.hibernate.type.BasicTypeReference@2e4339c1
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob -> org.hibernate.type.BasicTypeReference@62dc1203
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_blob_wrapper -> org.hibernate.type.BasicTypeReference@35d0749
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@621a387f
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration short -> org.hibernate.type.BasicTypeReference@621a387f
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Short -> org.hibernate.type.BasicTypeReference@621a387f
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration integer -> org.hibernate.type.BasicTypeReference@552088cc
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration int -> org.hibernate.type.BasicTypeReference@552088cc
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Integer -> org.hibernate.type.BasicTypeReference@552088cc
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@57eed461
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration long -> org.hibernate.type.BasicTypeReference@57eed461
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Long -> org.hibernate.type.BasicTypeReference@57eed461
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@3c62f69a
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration float -> org.hibernate.type.BasicTypeReference@3c62f69a
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Float -> org.hibernate.type.BasicTypeReference@3c62f69a
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@f08f8a9
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration double -> org.hibernate.type.BasicTypeReference@f08f8a9
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Double -> org.hibernate.type.BasicTypeReference@f08f8a9
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_integer -> org.hibernate.type.BasicTypeReference@5ebf776c
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigInteger -> org.hibernate.type.BasicTypeReference@5ebf776c
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration big_decimal -> org.hibernate.type.BasicTypeReference@7fd3fd06
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.math.BigDecimal -> org.hibernate.type.BasicTypeReference@7fd3fd06
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character -> org.hibernate.type.BasicTypeReference@54ae1240
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char -> org.hibernate.type.BasicTypeReference@54ae1240
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Character -> org.hibernate.type.BasicTypeReference@54ae1240
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration character_nchar -> org.hibernate.type.BasicTypeReference@1c2b65cc
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration string -> org.hibernate.type.BasicTypeReference@390a7532
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.String -> org.hibernate.type.BasicTypeReference@390a7532
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nstring -> org.hibernate.type.BasicTypeReference@595184d8
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration characters -> org.hibernate.type.BasicTypeReference@7d49a1a0
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration char[] -> org.hibernate.type.BasicTypeReference@7d49a1a0
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration [C -> org.hibernate.type.BasicTypeReference@7d49a1a0
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration wrapper-characters -> org.hibernate.type.BasicTypeReference@3a0baec0
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration text -> org.hibernate.type.BasicTypeReference@50c2ef56
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ntext -> org.hibernate.type.BasicTypeReference@560d6d2
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration clob -> org.hibernate.type.BasicTypeReference@3514237f
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Clob -> org.hibernate.type.BasicTypeReference@3514237f
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration nclob -> org.hibernate.type.BasicTypeReference@520ee6b3
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.NClob -> org.hibernate.type.BasicTypeReference@520ee6b3
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob -> org.hibernate.type.BasicTypeReference@15f11bfb
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_char_array -> org.hibernate.type.BasicTypeReference@16a499d1
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_clob_character_array -> org.hibernate.type.BasicTypeReference@2bf4fa1
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob -> org.hibernate.type.BasicTypeReference@27210a3b
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_character_array -> org.hibernate.type.BasicTypeReference@3a12f3e7
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration materialized_nclob_char_array -> org.hibernate.type.BasicTypeReference@84a9f65
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> org.hibernate.type.BasicTypeReference@70700b8a
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> org.hibernate.type.BasicTypeReference@70700b8a
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDateTime -> org.hibernate.type.BasicTypeReference@5fafa76d
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDateTime -> org.hibernate.type.BasicTypeReference@5fafa76d
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalDate -> org.hibernate.type.BasicTypeReference@720ffab4
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalDate -> org.hibernate.type.BasicTypeReference@720ffab4
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration LocalTime -> org.hibernate.type.BasicTypeReference@2e62e227
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.LocalTime -> org.hibernate.type.BasicTypeReference@2e62e227
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> org.hibernate.type.BasicTypeReference@5ebe903a
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> org.hibernate.type.BasicTypeReference@5ebe903a
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@7c88d04f
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@71df5f30
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> org.hibernate.type.BasicTypeReference@4895e8f6
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> org.hibernate.type.BasicTypeReference@4895e8f6
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeUtc -> org.hibernate.type.BasicTypeReference@62808e9e
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithTimezone -> org.hibernate.type.BasicTypeReference@58b03029
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@539dd2d0
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> org.hibernate.type.BasicTypeReference@3428420d
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> org.hibernate.type.BasicTypeReference@3428420d
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@523ade68
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@b529d7e
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration date -> org.hibernate.type.BasicTypeReference@3664c596
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Date -> org.hibernate.type.BasicTypeReference@3664c596
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration time -> org.hibernate.type.BasicTypeReference@40aad17d
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Time -> org.hibernate.type.BasicTypeReference@40aad17d
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timestamp -> org.hibernate.type.BasicTypeReference@44e79e9e
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.sql.Timestamp -> org.hibernate.type.BasicTypeReference@44e79e9e
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Date -> org.hibernate.type.BasicTypeReference@44e79e9e
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar -> org.hibernate.type.BasicTypeReference@5bc14211
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Calendar -> org.hibernate.type.BasicTypeReference@5bc14211
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.GregorianCalendar -> org.hibernate.type.BasicTypeReference@5bc14211
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_date -> org.hibernate.type.BasicTypeReference@4b99648a
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration calendar_time -> org.hibernate.type.BasicTypeReference@5d2e65bd
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration instant -> org.hibernate.type.BasicTypeReference@254513e8
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Instant -> org.hibernate.type.BasicTypeReference@254513e8
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid -> org.hibernate.type.BasicTypeReference@74450c9b
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.UUID -> org.hibernate.type.BasicTypeReference@74450c9b
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration pg-uuid -> org.hibernate.type.BasicTypeReference@74450c9b
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-binary -> org.hibernate.type.BasicTypeReference@74f89bad
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration uuid-char -> org.hibernate.type.BasicTypeReference@5ad50b02
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration class -> org.hibernate.type.BasicTypeReference@570299e3
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Class -> org.hibernate.type.BasicTypeReference@570299e3
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration currency -> org.hibernate.type.BasicTypeReference@bff764c
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Currency -> org.hibernate.type.BasicTypeReference@bff764c
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Currency -> org.hibernate.type.BasicTypeReference@bff764c
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration locale -> org.hibernate.type.BasicTypeReference@3beaa16d
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.Locale -> org.hibernate.type.BasicTypeReference@3beaa16d
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration serializable -> org.hibernate.type.BasicTypeReference@49153009
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.io.Serializable -> org.hibernate.type.BasicTypeReference@49153009
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration timezone -> org.hibernate.type.BasicTypeReference@a1b7549
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.util.TimeZone -> org.hibernate.type.BasicTypeReference@a1b7549
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZoneOffset -> org.hibernate.type.BasicTypeReference@7aa63f50
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZoneOffset -> org.hibernate.type.BasicTypeReference@7aa63f50
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration url -> org.hibernate.type.BasicTypeReference@142918a0
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.net.URL -> org.hibernate.type.BasicTypeReference@142918a0
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration vector -> org.hibernate.type.BasicTypeReference@745cf754
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration row_version -> org.hibernate.type.BasicTypeReference@25bc65ab
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration object -> org.hibernate.type.JavaObjectType@649009d6
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@649009d6
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration null -> org.hibernate.type.NullType@999cd18
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_date -> org.hibernate.type.BasicTypeReference@dd060be
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_time -> org.hibernate.type.BasicTypeReference@6144e499
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_timestamp -> org.hibernate.type.BasicTypeReference@26f204a4
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar -> org.hibernate.type.BasicTypeReference@28295554
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_date -> org.hibernate.type.BasicTypeReference@4e671ef
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_calendar_time -> org.hibernate.type.BasicTypeReference@42403dc6
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_binary -> org.hibernate.type.BasicTypeReference@74a1d60e
|
||||
2025-10-24 08:46:18 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration imm_serializable -> org.hibernate.type.BasicTypeReference@16c0be3b
|
||||
2025-10-24 08:46:18 [main] INFO o.s.o.j.p.SpringPersistenceUnitInfo - No LoadTimeWeaver setup: ignoring JPA class transformer
|
||||
2025-10-24 08:46:19 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
|
||||
2025-10-24 08:46:19 [main] INFO com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@7d75940
|
||||
2025-10-24 08:46:19 [main] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Start completed.
|
||||
2025-10-24 08:46:19 [main] WARN org.hibernate.orm.deprecation - HHH90000025: PostgreSQLDialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default)
|
||||
2025-10-24 08:46:19 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(2003, org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@c02a1be) replaced previous registration(org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@6f740044)
|
||||
2025-10-24 08:46:19 [main] DEBUG o.h.t.d.sql.spi.DdlTypeRegistry - addDescriptor(6, org.hibernate.type.descriptor.sql.internal.CapacityDependentDdlType@62732be7) replaced previous registration(org.hibernate.type.descriptor.sql.internal.DdlTypeImpl@278150a1)
|
||||
2025-10-24 08:46:19 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2004, BlobTypeDescriptor(BLOB_BINDING)) replaced previous registration(BlobTypeDescriptor(DEFAULT))
|
||||
2025-10-24 08:46:19 [main] DEBUG o.h.t.d.jdbc.spi.JdbcTypeRegistry - addDescriptor(2005, ClobTypeDescriptor(CLOB_BINDING)) replaced previous registration(ClobTypeDescriptor(DEFAULT))
|
||||
2025-10-24 08:46:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration JAVA_OBJECT -> org.hibernate.type.JavaObjectType@7fc5a558
|
||||
2025-10-24 08:46:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@7fc5a558
|
||||
2025-10-24 08:46:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Type registration key [java.lang.Object] overrode previous entry : `org.hibernate.type.JavaObjectType@649009d6`
|
||||
2025-10-24 08:46:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.DurationType -> basicType@1(java.time.Duration,3015)
|
||||
2025-10-24 08:46:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration Duration -> basicType@1(java.time.Duration,3015)
|
||||
2025-10-24 08:46:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.Duration -> basicType@1(java.time.Duration,3015)
|
||||
2025-10-24 08:46:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetDateTimeType -> basicType@2(java.time.OffsetDateTime,3003)
|
||||
2025-10-24 08:46:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003)
|
||||
2025-10-24 08:46:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003)
|
||||
2025-10-24 08:46:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.ZonedDateTimeType -> basicType@3(java.time.ZonedDateTime,3003)
|
||||
2025-10-24 08:46:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003)
|
||||
2025-10-24 08:46:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003)
|
||||
2025-10-24 08:46:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration org.hibernate.type.OffsetTimeType -> basicType@4(java.time.OffsetTime,3007)
|
||||
2025-10-24 08:46:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration OffsetTime -> basicType@4(java.time.OffsetTime,3007)
|
||||
2025-10-24 08:46:19 [main] DEBUG o.hibernate.type.BasicTypeRegistry - Adding type registration java.time.OffsetTime -> basicType@4(java.time.OffsetTime,3007)
|
||||
2025-10-24 08:46:19 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@5d9d8ecf] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@43cc7951]
|
||||
2025-10-24 08:46:19 [main] INFO o.h.e.t.j.p.i.JtaPlatformInitiator - HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration)
|
||||
2025-10-24 08:46:19 [main] DEBUG o.h.type.spi.TypeConfiguration$Scope - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@5d9d8ecf] to SessionFactoryImplementor [org.hibernate.internal.SessionFactoryImpl@179e8859]
|
||||
2025-10-24 08:46:19 [main] DEBUG org.hibernate.SQL -
|
||||
alter table if exists meetings
|
||||
alter column description set data type TEXT
|
||||
2025-10-24 08:46:19 [main] DEBUG org.hibernate.SQL -
|
||||
alter table if exists meetings
|
||||
alter column participants set data type TEXT
|
||||
2025-10-24 08:46:19 [main] DEBUG org.hibernate.SQL -
|
||||
alter table if exists minutes_sections
|
||||
alter column content set data type TEXT
|
||||
2025-10-24 08:46:19 [main] DEBUG org.hibernate.SQL -
|
||||
alter table if exists templates
|
||||
alter column description set data type TEXT
|
||||
2025-10-24 08:46:19 [main] DEBUG org.hibernate.SQL -
|
||||
alter table if exists templates
|
||||
alter column sections set data type TEXT
|
||||
2025-10-24 08:46:19 [main] DEBUG org.hibernate.SQL -
|
||||
alter table if exists todos
|
||||
alter column description set data type TEXT
|
||||
2025-10-24 08:46:19 [main] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryCreated from [org.hibernate.internal.SessionFactoryImpl@179e8859] for TypeConfiguration
|
||||
2025-10-24 08:46:19 [main] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Initialized JPA EntityManagerFactory for persistence unit 'default'
|
||||
2025-10-24 08:46:20 [main] INFO o.s.d.j.r.query.QueryEnhancerFactory - Hibernate is in classpath; If applicable, HQL parser will be used.
|
||||
2025-10-24 08:46:20 [main] INFO c.u.h.m.infra.cache.CacheConfig - Redis 연결 설정 - host: 20.249.177.114, port: 6379, database: 1
|
||||
2025-10-24 08:46:20 [main] ERROR i.n.r.d.DnsServerAddressStreamProviders - Unable to load io.netty.resolver.dns.macos.MacOSDnsServerAddressStreamProvider, fallback to system defaults. This may result in incorrect DNS resolutions on MacOS. Check whether you have a dependency on 'io.netty:netty-resolver-dns-native-macos'. Use DEBUG level to see the full stack: java.lang.UnsatisfiedLinkError: failed to load the required native library
|
||||
2025-10-24 08:46:20 [main] INFO c.u.h.m.infra.cache.CacheConfig - Redis 템플릿 설정 완료
|
||||
2025-10-24 08:46:20 [main] INFO c.u.h.m.infra.cache.CacheConfig - ObjectMapper 설정 완료
|
||||
2025-10-24 08:46:20 [main] INFO c.u.h.m.infra.config.EventHubConfig - Kafka Producer 설정 완료 - bootstrapServers: localhost:9092, clientId: meeting-service
|
||||
2025-10-24 08:46:20 [main] INFO c.u.h.m.infra.config.EventHubConfig - Kafka Template 설정 완료
|
||||
2025-10-24 08:46:20 [main] WARN o.s.b.a.o.j.JpaBaseConfiguration$JpaWebConfiguration - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
|
||||
2025-10-24 08:46:20 [main] WARN o.s.b.a.s.s.UserDetailsServiceAutoConfiguration -
|
||||
|
||||
Using generated security password: 78c92371-8a15-44f6-ac9d-b98ecb083f9d
|
||||
|
||||
This generated password is for development use only. Your security configuration must be updated before running your application in production.
|
||||
|
||||
2025-10-24 08:46:20 [main] INFO o.s.s.c.a.a.c.InitializeUserDetailsBeanManagerConfigurer$InitializeUserDetailsManagerConfigurer - Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager
|
||||
2025-10-24 08:46:20 [main] INFO c.u.h.m.infra.config.WebSocketConfig - WebSocket 핸들러 등록 완료 - endpoint: /ws/minutes/{minutesId}
|
||||
2025-10-24 08:46:21 [main] INFO o.s.b.a.e.web.EndpointLinksResolver - Exposing 3 endpoints beneath base path '/actuator'
|
||||
2025-10-24 08:46:21 [main] INFO o.s.s.web.DefaultSecurityFilterChain - Will secure any request with [org.springframework.security.web.session.DisableEncodeUrlFilter@7dd43529, org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter@4b7b0f85, org.springframework.security.web.context.SecurityContextHolderFilter@4cbb217e, org.springframework.security.web.header.HeaderWriterFilter@4aebeda8, org.springframework.web.filter.CorsFilter@2e3bfce8, org.springframework.security.web.authentication.logout.LogoutFilter@18269eaf, com.unicorn.hgzero.meeting.infra.config.jwt.JwtAuthenticationFilter@486ab192, org.springframework.security.web.savedrequest.RequestCacheAwareFilter@1a2fca7f, org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter@63802a5d, org.springframework.security.web.authentication.AnonymousAuthenticationFilter@144ba8cb, org.springframework.security.web.session.SessionManagementFilter@5fce034f, org.springframework.security.web.access.ExceptionTranslationFilter@4dbea3be, org.springframework.security.web.access.intercept.AuthorizationFilter@486cb71f]
|
||||
2025-10-24 08:46:21 [main] INFO o.s.b.w.e.tomcat.TomcatWebServer - Tomcat started on port 8082 (http) with context path '/'
|
||||
2025-10-24 08:46:21 [main] INFO c.u.h.meeting.MeetingApplication - Started MeetingApplication in 4.338 seconds (process running for 4.51)
|
||||
2025-10-24 08:46:31 [SpringApplicationShutdownHook] INFO o.s.o.j.LocalContainerEntityManagerFactoryBean - Closing JPA EntityManagerFactory for persistence unit 'default'
|
||||
2025-10-24 08:46:31 [SpringApplicationShutdownHook] TRACE o.h.type.spi.TypeConfiguration$Scope - Handling #sessionFactoryClosed from [org.hibernate.internal.SessionFactoryImpl@179e8859] for TypeConfiguration
|
||||
2025-10-24 08:46:31 [SpringApplicationShutdownHook] DEBUG o.h.type.spi.TypeConfiguration$Scope - Un-scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration$Scope@5c3bad7a] from SessionFactory [org.hibernate.internal.SessionFactoryImpl@179e8859]
|
||||
2025-10-24 08:46:31 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown initiated...
|
||||
2025-10-24 08:46:31 [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Shutdown completed.
|
||||
|
||||
@ -51,7 +51,7 @@ public class JwtTokenProvider {
|
||||
public boolean validateToken(String token) {
|
||||
try {
|
||||
Jwts.parser()
|
||||
.setSigningKey(secretKey)
|
||||
.verifyWith(secretKey)
|
||||
.build()
|
||||
.parseClaimsJws(token);
|
||||
return true;
|
||||
@ -72,7 +72,7 @@ public class JwtTokenProvider {
|
||||
*/
|
||||
public String getUserId(String token) {
|
||||
Claims claims = Jwts.parser()
|
||||
.setSigningKey(secretKey)
|
||||
.verifyWith(secretKey)
|
||||
.build()
|
||||
.parseClaimsJws(token)
|
||||
.getBody();
|
||||
@ -85,7 +85,7 @@ public class JwtTokenProvider {
|
||||
*/
|
||||
public String getUsername(String token) {
|
||||
Claims claims = Jwts.parser()
|
||||
.setSigningKey(secretKey)
|
||||
.verifyWith(secretKey)
|
||||
.build()
|
||||
.parseClaimsJws(token)
|
||||
.getBody();
|
||||
@ -98,7 +98,7 @@ public class JwtTokenProvider {
|
||||
*/
|
||||
public String getAuthority(String token) {
|
||||
Claims claims = Jwts.parser()
|
||||
.setSigningKey(secretKey)
|
||||
.verifyWith(secretKey)
|
||||
.build()
|
||||
.parseClaimsJws(token)
|
||||
.getBody();
|
||||
@ -112,7 +112,7 @@ public class JwtTokenProvider {
|
||||
public boolean isTokenExpired(String token) {
|
||||
try {
|
||||
Claims claims = Jwts.parser()
|
||||
.setSigningKey(secretKey)
|
||||
.verifyWith(secretKey)
|
||||
.build()
|
||||
.parseClaimsJws(token)
|
||||
.getBody();
|
||||
@ -128,7 +128,7 @@ public class JwtTokenProvider {
|
||||
*/
|
||||
public Date getExpirationDate(String token) {
|
||||
Claims claims = Jwts.parser()
|
||||
.setSigningKey(secretKey)
|
||||
.verifyWith(secretKey)
|
||||
.build()
|
||||
.parseClaimsJws(token)
|
||||
.getBody();
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -3,67 +3,12 @@
|
||||
<ExternalSystemSettings>
|
||||
<option name="env">
|
||||
<map>
|
||||
<!-- Database Configuration -->
|
||||
<entry key="DB_KIND" value="postgresql" />
|
||||
<entry key="DB_HOST" value="20.214.121.121" />
|
||||
<entry key="DB_PORT" value="5432" />
|
||||
<entry key="DB_NAME" value="userdb" />
|
||||
<entry key="DB_USERNAME" value="hgzerouser" />
|
||||
<entry key="DB_PASSWORD" value="Hi5Jessica!" />
|
||||
|
||||
<!-- JPA Configuration -->
|
||||
<entry key="SHOW_SQL" value="true" />
|
||||
<entry key="JPA_DDL_AUTO" value="update" />
|
||||
|
||||
<!-- Redis Configuration -->
|
||||
<entry key="REDIS_HOST" value="20.249.177.114" />
|
||||
<entry key="REDIS_PORT" value="6379" />
|
||||
<entry key="REDIS_PASSWORD" value="Hi5Jessica!" />
|
||||
<entry key="REDIS_DATABASE" value="0" />
|
||||
|
||||
<!-- Server Configuration -->
|
||||
<entry key="SERVER_PORT" value="8081" />
|
||||
|
||||
<!-- JWT Configuration -->
|
||||
<entry key="JWT_SECRET" value="dev-jwt-secret-key-for-development-only" />
|
||||
<entry key="JWT_ACCESS_TOKEN_VALIDITY" value="3600" />
|
||||
<entry key="JWT_REFRESH_TOKEN_VALIDITY" value="604800" />
|
||||
|
||||
<!-- CORS Configuration -->
|
||||
<entry key="CORS_ALLOWED_ORIGINS" value="http://localhost:*" />
|
||||
|
||||
<!-- External API Keys -->
|
||||
<entry key="CLAUDE_API_KEY" value="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" />
|
||||
<entry key="OPENAI_API_KEY" value="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" />
|
||||
<entry key="OPENWEATHER_API_KEY" value="1aa5bfca079a20586915b56f29235cc0" />
|
||||
<entry key="KAKAO_API_KEY" value="094feac895a3e4a6d7ffa66d877bf48f" />
|
||||
|
||||
<!-- LDAP Configuration -->
|
||||
<entry key="LDAP_URLS" value="ldaps://ldap.example.com:636" />
|
||||
<entry key="LDAP_BASE" value="dc=example,dc=com" />
|
||||
<entry key="LDAP_USERNAME" value="" />
|
||||
<entry key="LDAP_PASSWORD" value="" />
|
||||
<entry key="LDAP_USER_DN_PATTERN" value="uid={0},ou=people" />
|
||||
|
||||
<!-- Azure EventHub Configuration -->
|
||||
<entry key="EVENTHUB_CONNECTION_STRING" value="Endpoint=sb://hgzero-eventhub-ns.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=VUqZ9vFgu35E3c6RiUzoOGVUP8IZpFvlV+AEhC6sUpo=" />
|
||||
<entry key="EVENTHUB_NAME" value="hgzero-eventhub-name" />
|
||||
|
||||
<!-- Spring Profile -->
|
||||
<entry key="SPRING_PROFILES_ACTIVE" value="dev" />
|
||||
|
||||
<!-- Logging Configuration -->
|
||||
<entry key="LOG_LEVEL_ROOT" value="INFO" />
|
||||
<entry key="LOG_LEVEL_APP" value="DEBUG" />
|
||||
<entry key="LOG_LEVEL_WEB" value="INFO" />
|
||||
<entry key="LOG_LEVEL_SECURITY" value="DEBUG" />
|
||||
<entry key="LOG_LEVEL_SQL" value="DEBUG" />
|
||||
<entry key="LOG_LEVEL_SQL_TYPE" value="TRACE" />
|
||||
<entry key="LOG_FILE" value="logs/user-service.log" />
|
||||
<entry key="JWT_SECRET" value="my-super-secret-jwt-key-for-hgzero-meeting-service-2024" />
|
||||
</map>
|
||||
</option>
|
||||
<option name="executionName" />
|
||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||
<option name="externalProjectPath" value="$PROJECT_DIR$/user" />
|
||||
<option name="externalSystemIdString" value="GRADLE" />
|
||||
<option name="scriptParameters" value="" />
|
||||
<option name="taskDescriptions">
|
||||
@ -71,25 +16,13 @@
|
||||
</option>
|
||||
<option name="taskNames">
|
||||
<list>
|
||||
<option value=":user:bootRun" />
|
||||
<option value="bootRun" />
|
||||
</list>
|
||||
</option>
|
||||
<option name="vmOptions" />
|
||||
<option name="vmOptions" value="" />
|
||||
</ExternalSystemSettings>
|
||||
<ExternalSystemDebugServerProcess>true</ExternalSystemDebugServerProcess>
|
||||
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
|
||||
<EXTENSION ID="com.intellij.execution.ExternalSystemRunConfigurationJavaExtension">
|
||||
<extension name="net.ashald.envfile">
|
||||
<option name="IS_ENABLED" value="false" />
|
||||
<option name="IS_SUBST" value="false" />
|
||||
<option name="IS_PATH_MACRO_SUPPORTED" value="false" />
|
||||
<option name="IS_IGNORE_MISSING_FILES" value="false" />
|
||||
<option name="IS_ENABLE_EXPERIMENTAL_INTEGRATIONS" value="false" />
|
||||
<ENTRIES>
|
||||
<ENTRY IS_ENABLED="true" PARSER="runconfig" IS_EXECUTABLE="false" />
|
||||
</ENTRIES>
|
||||
</extension>
|
||||
</EXTENSION>
|
||||
<DebugAllEnabled>false</DebugAllEnabled>
|
||||
<RunAsTest>false</RunAsTest>
|
||||
<method v="2" />
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@ -6,4 +6,9 @@ dependencies {
|
||||
// LDAP
|
||||
implementation 'org.springframework.boot:spring-boot-starter-data-ldap'
|
||||
implementation 'org.springframework.ldap:spring-ldap-core'
|
||||
|
||||
// Azure EventHub
|
||||
implementation "com.azure:azure-messaging-eventhubs:${azureEventHubsVersion}"
|
||||
implementation "com.azure:azure-messaging-eventhubs-checkpointstore-blob:${azureEventHubsCheckpointVersion}"
|
||||
implementation 'org.springframework.integration:spring-integration-core'
|
||||
}
|
||||
|
||||
218
user/logs/user-service-final.log
Normal file
218
user/logs/user-service-final.log
Normal file
@ -0,0 +1,218 @@
|
||||
|
||||
. ____ _ __ _ _
|
||||
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
|
||||
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
|
||||
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
|
||||
' |____| .__|_| |_|_| |_\__, | / / / /
|
||||
=========|_|==============|___/=/_/_/_/
|
||||
|
||||
:: Spring Boot :: (v3.3.5)
|
||||
|
||||
2025-10-24 09:28:10 - Starting UserApplication using Java 21.0.8 with PID 25688 (/Users/adela/home/workspace/recent/HGZero/user/build/libs/user.jar started by adela in /Users/adela/home/workspace/recent/HGZero/user)
|
||||
2025-10-24 09:28:10 - Running with Spring Boot v3.3.5, Spring v6.1.14
|
||||
2025-10-24 09:28:10 - The following 1 profile is active: "dev"
|
||||
2025-10-24 09:28:11 - Multiple Spring Data modules found, entering strict repository configuration mode
|
||||
2025-10-24 09:28:11 - Bootstrapping Spring Data JPA repositories in DEFAULT mode.
|
||||
2025-10-24 09:28:11 - Finished Spring Data repository scanning in 97 ms. Found 1 JPA repository interface.
|
||||
2025-10-24 09:28:11 - Multiple Spring Data modules found, entering strict repository configuration mode
|
||||
2025-10-24 09:28:11 - Bootstrapping Spring Data LDAP repositories in DEFAULT mode.
|
||||
2025-10-24 09:28:11 - Spring Data LDAP - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.user.repository.jpa.UserRepository; If you want this repository to be a LDAP repository, consider annotating your entities with one of these annotations: org.springframework.ldap.odm.annotations.Entry (preferred), or consider extending one of the following types with your repository: org.springframework.data.ldap.repository.LdapRepository
|
||||
2025-10-24 09:28:11 - Finished Spring Data repository scanning in 9 ms. Found 0 LDAP repository interfaces.
|
||||
2025-10-24 09:28:11 - Multiple Spring Data modules found, entering strict repository configuration mode
|
||||
2025-10-24 09:28:11 - Bootstrapping Spring Data Redis repositories in DEFAULT mode.
|
||||
2025-10-24 09:28:11 - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.user.repository.jpa.UserRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository
|
||||
2025-10-24 09:28:11 - Finished Spring Data repository scanning in 1 ms. Found 0 Redis repository interfaces.
|
||||
2025-10-24 09:28:11 - No bean named 'errorChannel' has been explicitly defined. Therefore, a default PublishSubscribeChannel will be created.
|
||||
2025-10-24 09:28:11 - No bean named 'integrationHeaderChannelRegistry' has been explicitly defined. Therefore, a default DefaultHeaderChannelRegistry will be created.
|
||||
2025-10-24 09:28:11 - Tomcat initialized with port 8081 (http)
|
||||
2025-10-24 09:28:11 - Starting service [Tomcat]
|
||||
2025-10-24 09:28:11 - Starting Servlet engine: [Apache Tomcat/10.1.31]
|
||||
2025-10-24 09:28:11 - Initializing Spring embedded WebApplicationContext
|
||||
2025-10-24 09:28:11 - Root WebApplicationContext: initialization completed in 1578 ms
|
||||
2025-10-24 09:28:12 - HHH000204: Processing PersistenceUnitInfo [name: default]
|
||||
2025-10-24 09:28:12 - HHH000412: Hibernate ORM core version 6.5.3.Final
|
||||
2025-10-24 09:28:12 - HHH000026: Second-level cache disabled
|
||||
2025-10-24 09:28:12 - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@175957b6
|
||||
2025-10-24 09:28:12 - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@175957b6
|
||||
2025-10-24 09:28:12 - Adding type registration java.lang.Boolean -> org.hibernate.type.BasicTypeReference@175957b6
|
||||
2025-10-24 09:28:12 - Adding type registration numeric_boolean -> org.hibernate.type.BasicTypeReference@1b7a4930
|
||||
2025-10-24 09:28:12 - Adding type registration org.hibernate.type.NumericBooleanConverter -> org.hibernate.type.BasicTypeReference@1b7a4930
|
||||
2025-10-24 09:28:12 - Adding type registration true_false -> org.hibernate.type.BasicTypeReference@591a4d25
|
||||
2025-10-24 09:28:12 - Adding type registration org.hibernate.type.TrueFalseConverter -> org.hibernate.type.BasicTypeReference@591a4d25
|
||||
2025-10-24 09:28:12 - Adding type registration yes_no -> org.hibernate.type.BasicTypeReference@4bfe83d
|
||||
2025-10-24 09:28:12 - Adding type registration org.hibernate.type.YesNoConverter -> org.hibernate.type.BasicTypeReference@4bfe83d
|
||||
2025-10-24 09:28:12 - Adding type registration byte -> org.hibernate.type.BasicTypeReference@5906ebfb
|
||||
2025-10-24 09:28:12 - Adding type registration byte -> org.hibernate.type.BasicTypeReference@5906ebfb
|
||||
2025-10-24 09:28:12 - Adding type registration java.lang.Byte -> org.hibernate.type.BasicTypeReference@5906ebfb
|
||||
2025-10-24 09:28:12 - Adding type registration binary -> org.hibernate.type.BasicTypeReference@10fc1a22
|
||||
2025-10-24 09:28:12 - Adding type registration byte[] -> org.hibernate.type.BasicTypeReference@10fc1a22
|
||||
2025-10-24 09:28:12 - Adding type registration [B -> org.hibernate.type.BasicTypeReference@10fc1a22
|
||||
2025-10-24 09:28:12 - Adding type registration binary_wrapper -> org.hibernate.type.BasicTypeReference@1b841e7d
|
||||
2025-10-24 09:28:12 - Adding type registration wrapper-binary -> org.hibernate.type.BasicTypeReference@1b841e7d
|
||||
2025-10-24 09:28:12 - Adding type registration image -> org.hibernate.type.BasicTypeReference@6081f330
|
||||
2025-10-24 09:28:12 - Adding type registration blob -> org.hibernate.type.BasicTypeReference@eb695e8
|
||||
2025-10-24 09:28:12 - Adding type registration java.sql.Blob -> org.hibernate.type.BasicTypeReference@eb695e8
|
||||
2025-10-24 09:28:12 - Adding type registration materialized_blob -> org.hibernate.type.BasicTypeReference@7eebb316
|
||||
2025-10-24 09:28:12 - Adding type registration materialized_blob_wrapper -> org.hibernate.type.BasicTypeReference@45273d40
|
||||
2025-10-24 09:28:12 - Adding type registration short -> org.hibernate.type.BasicTypeReference@2a504ea7
|
||||
2025-10-24 09:28:12 - Adding type registration short -> org.hibernate.type.BasicTypeReference@2a504ea7
|
||||
2025-10-24 09:28:12 - Adding type registration java.lang.Short -> org.hibernate.type.BasicTypeReference@2a504ea7
|
||||
2025-10-24 09:28:12 - Adding type registration integer -> org.hibernate.type.BasicTypeReference@10f397d0
|
||||
2025-10-24 09:28:12 - Adding type registration int -> org.hibernate.type.BasicTypeReference@10f397d0
|
||||
2025-10-24 09:28:12 - Adding type registration java.lang.Integer -> org.hibernate.type.BasicTypeReference@10f397d0
|
||||
2025-10-24 09:28:12 - Adding type registration long -> org.hibernate.type.BasicTypeReference@33a3e5db
|
||||
2025-10-24 09:28:12 - Adding type registration long -> org.hibernate.type.BasicTypeReference@33a3e5db
|
||||
2025-10-24 09:28:12 - Adding type registration java.lang.Long -> org.hibernate.type.BasicTypeReference@33a3e5db
|
||||
2025-10-24 09:28:12 - Adding type registration float -> org.hibernate.type.BasicTypeReference@4f9213d2
|
||||
2025-10-24 09:28:12 - Adding type registration float -> org.hibernate.type.BasicTypeReference@4f9213d2
|
||||
2025-10-24 09:28:12 - Adding type registration java.lang.Float -> org.hibernate.type.BasicTypeReference@4f9213d2
|
||||
2025-10-24 09:28:12 - Adding type registration double -> org.hibernate.type.BasicTypeReference@679f59f1
|
||||
2025-10-24 09:28:12 - Adding type registration double -> org.hibernate.type.BasicTypeReference@679f59f1
|
||||
2025-10-24 09:28:12 - Adding type registration java.lang.Double -> org.hibernate.type.BasicTypeReference@679f59f1
|
||||
2025-10-24 09:28:12 - Adding type registration big_integer -> org.hibernate.type.BasicTypeReference@6b5e1fc5
|
||||
2025-10-24 09:28:12 - Adding type registration java.math.BigInteger -> org.hibernate.type.BasicTypeReference@6b5e1fc5
|
||||
2025-10-24 09:28:12 - Adding type registration big_decimal -> org.hibernate.type.BasicTypeReference@47ffa248
|
||||
2025-10-24 09:28:12 - Adding type registration java.math.BigDecimal -> org.hibernate.type.BasicTypeReference@47ffa248
|
||||
2025-10-24 09:28:12 - Adding type registration character -> org.hibernate.type.BasicTypeReference@18ac25e6
|
||||
2025-10-24 09:28:12 - Adding type registration char -> org.hibernate.type.BasicTypeReference@18ac25e6
|
||||
2025-10-24 09:28:12 - Adding type registration java.lang.Character -> org.hibernate.type.BasicTypeReference@18ac25e6
|
||||
2025-10-24 09:28:12 - Adding type registration character_nchar -> org.hibernate.type.BasicTypeReference@5e1a7d3
|
||||
2025-10-24 09:28:12 - Adding type registration string -> org.hibernate.type.BasicTypeReference@1eda309d
|
||||
2025-10-24 09:28:12 - Adding type registration java.lang.String -> org.hibernate.type.BasicTypeReference@1eda309d
|
||||
2025-10-24 09:28:12 - Adding type registration nstring -> org.hibernate.type.BasicTypeReference@248d2cec
|
||||
2025-10-24 09:28:12 - Adding type registration characters -> org.hibernate.type.BasicTypeReference@5d77be8e
|
||||
2025-10-24 09:28:12 - Adding type registration char[] -> org.hibernate.type.BasicTypeReference@5d77be8e
|
||||
2025-10-24 09:28:12 - Adding type registration [C -> org.hibernate.type.BasicTypeReference@5d77be8e
|
||||
2025-10-24 09:28:12 - Adding type registration wrapper-characters -> org.hibernate.type.BasicTypeReference@55a055cc
|
||||
2025-10-24 09:28:12 - Adding type registration text -> org.hibernate.type.BasicTypeReference@1ab1d93d
|
||||
2025-10-24 09:28:12 - Adding type registration ntext -> org.hibernate.type.BasicTypeReference@57167ccb
|
||||
2025-10-24 09:28:12 - Adding type registration clob -> org.hibernate.type.BasicTypeReference@37753b69
|
||||
2025-10-24 09:28:12 - Adding type registration java.sql.Clob -> org.hibernate.type.BasicTypeReference@37753b69
|
||||
2025-10-24 09:28:12 - Adding type registration nclob -> org.hibernate.type.BasicTypeReference@602c167e
|
||||
2025-10-24 09:28:12 - Adding type registration java.sql.NClob -> org.hibernate.type.BasicTypeReference@602c167e
|
||||
2025-10-24 09:28:12 - Adding type registration materialized_clob -> org.hibernate.type.BasicTypeReference@74c04377
|
||||
2025-10-24 09:28:12 - Adding type registration materialized_clob_char_array -> org.hibernate.type.BasicTypeReference@10d49900
|
||||
2025-10-24 09:28:12 - Adding type registration materialized_clob_character_array -> org.hibernate.type.BasicTypeReference@e645600
|
||||
2025-10-24 09:28:12 - Adding type registration materialized_nclob -> org.hibernate.type.BasicTypeReference@e7b3e54
|
||||
2025-10-24 09:28:12 - Adding type registration materialized_nclob_character_array -> org.hibernate.type.BasicTypeReference@78d61f17
|
||||
2025-10-24 09:28:12 - Adding type registration materialized_nclob_char_array -> org.hibernate.type.BasicTypeReference@4cfe9594
|
||||
2025-10-24 09:28:12 - Adding type registration Duration -> org.hibernate.type.BasicTypeReference@60861e5d
|
||||
2025-10-24 09:28:12 - Adding type registration java.time.Duration -> org.hibernate.type.BasicTypeReference@60861e5d
|
||||
2025-10-24 09:28:12 - Adding type registration LocalDateTime -> org.hibernate.type.BasicTypeReference@37d81587
|
||||
2025-10-24 09:28:12 - Adding type registration java.time.LocalDateTime -> org.hibernate.type.BasicTypeReference@37d81587
|
||||
2025-10-24 09:28:12 - Adding type registration LocalDate -> org.hibernate.type.BasicTypeReference@7f3e9acc
|
||||
2025-10-24 09:28:12 - Adding type registration java.time.LocalDate -> org.hibernate.type.BasicTypeReference@7f3e9acc
|
||||
2025-10-24 09:28:12 - Adding type registration LocalTime -> org.hibernate.type.BasicTypeReference@47d4e28a
|
||||
2025-10-24 09:28:12 - Adding type registration java.time.LocalTime -> org.hibernate.type.BasicTypeReference@47d4e28a
|
||||
2025-10-24 09:28:12 - Adding type registration OffsetDateTime -> org.hibernate.type.BasicTypeReference@177068db
|
||||
2025-10-24 09:28:12 - Adding type registration java.time.OffsetDateTime -> org.hibernate.type.BasicTypeReference@177068db
|
||||
2025-10-24 09:28:12 - Adding type registration OffsetDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@60f3239f
|
||||
2025-10-24 09:28:12 - Adding type registration OffsetDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@6b103db7
|
||||
2025-10-24 09:28:12 - Adding type registration OffsetTime -> org.hibernate.type.BasicTypeReference@b3042ed
|
||||
2025-10-24 09:28:12 - Adding type registration java.time.OffsetTime -> org.hibernate.type.BasicTypeReference@b3042ed
|
||||
2025-10-24 09:28:12 - Adding type registration OffsetTimeUtc -> org.hibernate.type.BasicTypeReference@1f12d5e0
|
||||
2025-10-24 09:28:12 - Adding type registration OffsetTimeWithTimezone -> org.hibernate.type.BasicTypeReference@6604f246
|
||||
2025-10-24 09:28:12 - Adding type registration OffsetTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@c1386b4
|
||||
2025-10-24 09:28:12 - Adding type registration ZonedDateTime -> org.hibernate.type.BasicTypeReference@53d9af1
|
||||
2025-10-24 09:28:12 - Adding type registration java.time.ZonedDateTime -> org.hibernate.type.BasicTypeReference@53d9af1
|
||||
2025-10-24 09:28:12 - Adding type registration ZonedDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@c89e263
|
||||
2025-10-24 09:28:12 - Adding type registration ZonedDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@4d5ea776
|
||||
2025-10-24 09:28:12 - Adding type registration date -> org.hibernate.type.BasicTypeReference@5d68be4f
|
||||
2025-10-24 09:28:12 - Adding type registration java.sql.Date -> org.hibernate.type.BasicTypeReference@5d68be4f
|
||||
2025-10-24 09:28:12 - Adding type registration time -> org.hibernate.type.BasicTypeReference@34eb5d01
|
||||
2025-10-24 09:28:12 - Adding type registration java.sql.Time -> org.hibernate.type.BasicTypeReference@34eb5d01
|
||||
2025-10-24 09:28:12 - Adding type registration timestamp -> org.hibernate.type.BasicTypeReference@77b22b05
|
||||
2025-10-24 09:28:12 - Adding type registration java.sql.Timestamp -> org.hibernate.type.BasicTypeReference@77b22b05
|
||||
2025-10-24 09:28:12 - Adding type registration java.util.Date -> org.hibernate.type.BasicTypeReference@77b22b05
|
||||
2025-10-24 09:28:12 - Adding type registration calendar -> org.hibernate.type.BasicTypeReference@4fef5792
|
||||
2025-10-24 09:28:12 - Adding type registration java.util.Calendar -> org.hibernate.type.BasicTypeReference@4fef5792
|
||||
2025-10-24 09:28:12 - Adding type registration java.util.GregorianCalendar -> org.hibernate.type.BasicTypeReference@4fef5792
|
||||
2025-10-24 09:28:12 - Adding type registration calendar_date -> org.hibernate.type.BasicTypeReference@57ed02e6
|
||||
2025-10-24 09:28:12 - Adding type registration calendar_time -> org.hibernate.type.BasicTypeReference@39004e4f
|
||||
2025-10-24 09:28:12 - Adding type registration instant -> org.hibernate.type.BasicTypeReference@5f0ca069
|
||||
2025-10-24 09:28:12 - Adding type registration java.time.Instant -> org.hibernate.type.BasicTypeReference@5f0ca069
|
||||
2025-10-24 09:28:12 - Adding type registration uuid -> org.hibernate.type.BasicTypeReference@6a6a2fdd
|
||||
2025-10-24 09:28:12 - Adding type registration java.util.UUID -> org.hibernate.type.BasicTypeReference@6a6a2fdd
|
||||
2025-10-24 09:28:12 - Adding type registration pg-uuid -> org.hibernate.type.BasicTypeReference@6a6a2fdd
|
||||
2025-10-24 09:28:12 - Adding type registration uuid-binary -> org.hibernate.type.BasicTypeReference@552ffa44
|
||||
2025-10-24 09:28:12 - Adding type registration uuid-char -> org.hibernate.type.BasicTypeReference@6e66b498
|
||||
2025-10-24 09:28:12 - Adding type registration class -> org.hibernate.type.BasicTypeReference@54d35ed5
|
||||
2025-10-24 09:28:12 - Adding type registration java.lang.Class -> org.hibernate.type.BasicTypeReference@54d35ed5
|
||||
2025-10-24 09:28:12 - Adding type registration currency -> org.hibernate.type.BasicTypeReference@6f7c9755
|
||||
2025-10-24 09:28:12 - Adding type registration Currency -> org.hibernate.type.BasicTypeReference@6f7c9755
|
||||
2025-10-24 09:28:12 - Adding type registration java.util.Currency -> org.hibernate.type.BasicTypeReference@6f7c9755
|
||||
2025-10-24 09:28:12 - Adding type registration locale -> org.hibernate.type.BasicTypeReference@45abbd24
|
||||
2025-10-24 09:28:12 - Adding type registration java.util.Locale -> org.hibernate.type.BasicTypeReference@45abbd24
|
||||
2025-10-24 09:28:12 - Adding type registration serializable -> org.hibernate.type.BasicTypeReference@1e32037d
|
||||
2025-10-24 09:28:12 - Adding type registration java.io.Serializable -> org.hibernate.type.BasicTypeReference@1e32037d
|
||||
2025-10-24 09:28:12 - Adding type registration timezone -> org.hibernate.type.BasicTypeReference@5059d398
|
||||
2025-10-24 09:28:12 - Adding type registration java.util.TimeZone -> org.hibernate.type.BasicTypeReference@5059d398
|
||||
2025-10-24 09:28:12 - Adding type registration ZoneOffset -> org.hibernate.type.BasicTypeReference@5b1420f9
|
||||
2025-10-24 09:28:12 - Adding type registration java.time.ZoneOffset -> org.hibernate.type.BasicTypeReference@5b1420f9
|
||||
2025-10-24 09:28:12 - Adding type registration url -> org.hibernate.type.BasicTypeReference@434ee422
|
||||
2025-10-24 09:28:12 - Adding type registration java.net.URL -> org.hibernate.type.BasicTypeReference@434ee422
|
||||
2025-10-24 09:28:12 - Adding type registration vector -> org.hibernate.type.BasicTypeReference@4de93edd
|
||||
2025-10-24 09:28:12 - Adding type registration row_version -> org.hibernate.type.BasicTypeReference@53b2e1eb
|
||||
2025-10-24 09:28:12 - Adding type registration object -> org.hibernate.type.JavaObjectType@134955bb
|
||||
2025-10-24 09:28:12 - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@134955bb
|
||||
2025-10-24 09:28:12 - Adding type registration null -> org.hibernate.type.NullType@195cbf5e
|
||||
2025-10-24 09:28:12 - Adding type registration imm_date -> org.hibernate.type.BasicTypeReference@4cb82b09
|
||||
2025-10-24 09:28:12 - Adding type registration imm_time -> org.hibernate.type.BasicTypeReference@b68932b
|
||||
2025-10-24 09:28:12 - Adding type registration imm_timestamp -> org.hibernate.type.BasicTypeReference@77b27b57
|
||||
2025-10-24 09:28:12 - Adding type registration imm_calendar -> org.hibernate.type.BasicTypeReference@7adff6cb
|
||||
2025-10-24 09:28:12 - Adding type registration imm_calendar_date -> org.hibernate.type.BasicTypeReference@13ebccd
|
||||
2025-10-24 09:28:12 - Adding type registration imm_calendar_time -> org.hibernate.type.BasicTypeReference@4e80960a
|
||||
2025-10-24 09:28:12 - Adding type registration imm_binary -> org.hibernate.type.BasicTypeReference@2a0c244e
|
||||
2025-10-24 09:28:12 - Adding type registration imm_serializable -> org.hibernate.type.BasicTypeReference@2f60e66a
|
||||
2025-10-24 09:28:12 - No LoadTimeWeaver setup: ignoring JPA class transformer
|
||||
2025-10-24 09:28:12 - HikariPool-1 - Starting...
|
||||
2025-10-24 09:28:12 - HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@6e5af973
|
||||
2025-10-24 09:28:12 - HikariPool-1 - Start completed.
|
||||
2025-10-24 09:28:12 - HHH90000025: PostgreSQLDialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default)
|
||||
2025-10-24 09:28:12 - addDescriptor(2003, org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@523f3c29) replaced previous registration(org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@2fd8b081)
|
||||
2025-10-24 09:28:12 - addDescriptor(6, org.hibernate.type.descriptor.sql.internal.CapacityDependentDdlType@2fe38b73) replaced previous registration(org.hibernate.type.descriptor.sql.internal.DdlTypeImpl@511a307e)
|
||||
2025-10-24 09:28:12 - addDescriptor(2004, BlobTypeDescriptor(BLOB_BINDING)) replaced previous registration(BlobTypeDescriptor(DEFAULT))
|
||||
2025-10-24 09:28:12 - addDescriptor(2005, ClobTypeDescriptor(CLOB_BINDING)) replaced previous registration(ClobTypeDescriptor(DEFAULT))
|
||||
2025-10-24 09:28:12 - Adding type registration JAVA_OBJECT -> org.hibernate.type.JavaObjectType@c14bbab
|
||||
2025-10-24 09:28:12 - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@c14bbab
|
||||
2025-10-24 09:28:12 - Type registration key [java.lang.Object] overrode previous entry : `org.hibernate.type.JavaObjectType@134955bb`
|
||||
2025-10-24 09:28:12 - Adding type registration org.hibernate.type.DurationType -> basicType@1(java.time.Duration,3015)
|
||||
2025-10-24 09:28:12 - Adding type registration Duration -> basicType@1(java.time.Duration,3015)
|
||||
2025-10-24 09:28:12 - Adding type registration java.time.Duration -> basicType@1(java.time.Duration,3015)
|
||||
2025-10-24 09:28:12 - Adding type registration org.hibernate.type.OffsetDateTimeType -> basicType@2(java.time.OffsetDateTime,3003)
|
||||
2025-10-24 09:28:12 - Adding type registration OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003)
|
||||
2025-10-24 09:28:12 - Adding type registration java.time.OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003)
|
||||
2025-10-24 09:28:12 - Adding type registration org.hibernate.type.ZonedDateTimeType -> basicType@3(java.time.ZonedDateTime,3003)
|
||||
2025-10-24 09:28:12 - Adding type registration ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003)
|
||||
2025-10-24 09:28:12 - Adding type registration java.time.ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003)
|
||||
2025-10-24 09:28:12 - Adding type registration org.hibernate.type.OffsetTimeType -> basicType@4(java.time.OffsetTime,3007)
|
||||
2025-10-24 09:28:12 - Adding type registration OffsetTime -> basicType@4(java.time.OffsetTime,3007)
|
||||
2025-10-24 09:28:12 - Adding type registration java.time.OffsetTime -> basicType@4(java.time.OffsetTime,3007)
|
||||
2025-10-24 09:28:12 - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@40416321] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@3ab70d34]
|
||||
2025-10-24 09:28:12 - HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration)
|
||||
2025-10-24 09:28:12 - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@40416321] to SessionFactoryImplementor [org.hibernate.internal.SessionFactoryImpl@5653429e]
|
||||
2025-10-24 09:28:12 - Handling #sessionFactoryCreated from [org.hibernate.internal.SessionFactoryImpl@5653429e] for TypeConfiguration
|
||||
2025-10-24 09:28:12 - Initialized JPA EntityManagerFactory for persistence unit 'default'
|
||||
2025-10-24 09:28:12 - Property 'userDn' not set - anonymous context will be used for read-only operations
|
||||
2025-10-24 09:28:13 - Unable to load io.netty.resolver.dns.macos.MacOSDnsServerAddressStreamProvider, fallback to system defaults. This may result in incorrect DNS resolutions on MacOS. Check whether you have a dependency on 'io.netty:netty-resolver-dns-native-macos'. Use DEBUG level to see the full stack: java.lang.UnsatisfiedLinkError: failed to load the required native library
|
||||
2025-10-24 09:28:13 - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
|
||||
2025-10-24 09:28:13 -
|
||||
|
||||
Using generated security password: 4dea95e5-e05d-43b8-a9c7-781dfaa42e82
|
||||
|
||||
This generated password is for development use only. Your security configuration must be updated before running your application in production.
|
||||
|
||||
2025-10-24 09:28:13 - Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager
|
||||
2025-10-24 09:28:13 - Exposing 3 endpoints beneath base path '/actuator'
|
||||
2025-10-24 09:28:13 - Will secure any request with filters: DisableEncodeUrlFilter, WebAsyncManagerIntegrationFilter, SecurityContextHolderFilter, HeaderWriterFilter, CorsFilter, LogoutFilter, JwtAuthenticationFilter, RequestCacheAwareFilter, SecurityContextHolderAwareRequestFilter, AnonymousAuthenticationFilter, SessionManagementFilter, ExceptionTranslationFilter, AuthorizationFilter
|
||||
2025-10-24 09:28:14 - Adding {logging-channel-adapter:_org.springframework.integration.errorLogger} as a subscriber to the 'errorChannel' channel
|
||||
2025-10-24 09:28:14 - Channel 'user.errorChannel' has 1 subscriber(s).
|
||||
2025-10-24 09:28:14 - started bean '_org.springframework.integration.errorLogger'
|
||||
2025-10-24 09:28:14 - Tomcat started on port 8081 (http) with context path '/'
|
||||
2025-10-24 09:28:14 - Started UserApplication in 4.689 seconds (process running for 5.01)
|
||||
2025-10-24 09:28:23 - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2025-10-24 09:28:23 - Initializing Servlet 'dispatcherServlet'
|
||||
2025-10-24 09:28:23 - Completed initialization in 1 ms
|
||||
2025-10-24 09:28:23 - Securing GET /actuator/health
|
||||
2025-10-24 09:28:23 - Set SecurityContextHolder to anonymous SecurityContext
|
||||
2025-10-24 09:28:23 - Secured GET /actuator/health
|
||||
415
user/logs/user-service-test.log
Normal file
415
user/logs/user-service-test.log
Normal file
@ -0,0 +1,415 @@
|
||||
|
||||
. ____ _ __ _ _
|
||||
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
|
||||
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
|
||||
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
|
||||
' |____| .__|_| |_|_| |_\__, | / / / /
|
||||
=========|_|==============|___/=/_/_/_/
|
||||
|
||||
:: Spring Boot :: (v3.3.5)
|
||||
|
||||
2025-10-24 09:26:46 - Starting UserApplication using Java 21.0.8 with PID 25117 (/Users/adela/home/workspace/recent/HGZero/user/build/libs/user.jar started by adela in /Users/adela/home/workspace/recent/HGZero/user)
|
||||
2025-10-24 09:26:46 - Running with Spring Boot v3.3.5, Spring v6.1.14
|
||||
2025-10-24 09:26:46 - The following 1 profile is active: "dev"
|
||||
2025-10-24 09:26:46 - Multiple Spring Data modules found, entering strict repository configuration mode
|
||||
2025-10-24 09:26:46 - Bootstrapping Spring Data JPA repositories in DEFAULT mode.
|
||||
2025-10-24 09:26:46 - Finished Spring Data repository scanning in 76 ms. Found 1 JPA repository interface.
|
||||
2025-10-24 09:26:46 - Multiple Spring Data modules found, entering strict repository configuration mode
|
||||
2025-10-24 09:26:46 - Bootstrapping Spring Data LDAP repositories in DEFAULT mode.
|
||||
2025-10-24 09:26:46 - Spring Data LDAP - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.user.repository.jpa.UserRepository; If you want this repository to be a LDAP repository, consider annotating your entities with one of these annotations: org.springframework.ldap.odm.annotations.Entry (preferred), or consider extending one of the following types with your repository: org.springframework.data.ldap.repository.LdapRepository
|
||||
2025-10-24 09:26:46 - Finished Spring Data repository scanning in 2 ms. Found 0 LDAP repository interfaces.
|
||||
2025-10-24 09:26:46 - Multiple Spring Data modules found, entering strict repository configuration mode
|
||||
2025-10-24 09:26:46 - Bootstrapping Spring Data Redis repositories in DEFAULT mode.
|
||||
2025-10-24 09:26:46 - Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.unicorn.hgzero.user.repository.jpa.UserRepository; If you want this repository to be a Redis repository, consider annotating your entities with one of these annotations: org.springframework.data.redis.core.RedisHash (preferred), or consider extending one of the following types with your repository: org.springframework.data.keyvalue.repository.KeyValueRepository
|
||||
2025-10-24 09:26:46 - Finished Spring Data repository scanning in 1 ms. Found 0 Redis repository interfaces.
|
||||
2025-10-24 09:26:46 - No bean named 'errorChannel' has been explicitly defined. Therefore, a default PublishSubscribeChannel will be created.
|
||||
2025-10-24 09:26:46 - No bean named 'integrationHeaderChannelRegistry' has been explicitly defined. Therefore, a default DefaultHeaderChannelRegistry will be created.
|
||||
2025-10-24 09:26:47 - Tomcat initialized with port 8081 (http)
|
||||
2025-10-24 09:26:47 - Starting service [Tomcat]
|
||||
2025-10-24 09:26:47 - Starting Servlet engine: [Apache Tomcat/10.1.31]
|
||||
2025-10-24 09:26:47 - Initializing Spring embedded WebApplicationContext
|
||||
2025-10-24 09:26:47 - Root WebApplicationContext: initialization completed in 1466 ms
|
||||
2025-10-24 09:26:47 - HHH000204: Processing PersistenceUnitInfo [name: default]
|
||||
2025-10-24 09:26:47 - HHH000412: Hibernate ORM core version 6.5.3.Final
|
||||
2025-10-24 09:26:47 - HHH000026: Second-level cache disabled
|
||||
2025-10-24 09:26:47 - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@191b44ca
|
||||
2025-10-24 09:26:47 - Adding type registration boolean -> org.hibernate.type.BasicTypeReference@191b44ca
|
||||
2025-10-24 09:26:47 - Adding type registration java.lang.Boolean -> org.hibernate.type.BasicTypeReference@191b44ca
|
||||
2025-10-24 09:26:47 - Adding type registration numeric_boolean -> org.hibernate.type.BasicTypeReference@5de243bb
|
||||
2025-10-24 09:26:47 - Adding type registration org.hibernate.type.NumericBooleanConverter -> org.hibernate.type.BasicTypeReference@5de243bb
|
||||
2025-10-24 09:26:47 - Adding type registration true_false -> org.hibernate.type.BasicTypeReference@2c4cf7eb
|
||||
2025-10-24 09:26:47 - Adding type registration org.hibernate.type.TrueFalseConverter -> org.hibernate.type.BasicTypeReference@2c4cf7eb
|
||||
2025-10-24 09:26:47 - Adding type registration yes_no -> org.hibernate.type.BasicTypeReference@35260785
|
||||
2025-10-24 09:26:47 - Adding type registration org.hibernate.type.YesNoConverter -> org.hibernate.type.BasicTypeReference@35260785
|
||||
2025-10-24 09:26:47 - Adding type registration byte -> org.hibernate.type.BasicTypeReference@76d828ff
|
||||
2025-10-24 09:26:47 - Adding type registration byte -> org.hibernate.type.BasicTypeReference@76d828ff
|
||||
2025-10-24 09:26:47 - Adding type registration java.lang.Byte -> org.hibernate.type.BasicTypeReference@76d828ff
|
||||
2025-10-24 09:26:47 - Adding type registration binary -> org.hibernate.type.BasicTypeReference@39685204
|
||||
2025-10-24 09:26:47 - Adding type registration byte[] -> org.hibernate.type.BasicTypeReference@39685204
|
||||
2025-10-24 09:26:47 - Adding type registration [B -> org.hibernate.type.BasicTypeReference@39685204
|
||||
2025-10-24 09:26:47 - Adding type registration binary_wrapper -> org.hibernate.type.BasicTypeReference@72d0196d
|
||||
2025-10-24 09:26:47 - Adding type registration wrapper-binary -> org.hibernate.type.BasicTypeReference@72d0196d
|
||||
2025-10-24 09:26:47 - Adding type registration image -> org.hibernate.type.BasicTypeReference@77cf329d
|
||||
2025-10-24 09:26:47 - Adding type registration blob -> org.hibernate.type.BasicTypeReference@4067634b
|
||||
2025-10-24 09:26:47 - Adding type registration java.sql.Blob -> org.hibernate.type.BasicTypeReference@4067634b
|
||||
2025-10-24 09:26:47 - Adding type registration materialized_blob -> org.hibernate.type.BasicTypeReference@3b64f131
|
||||
2025-10-24 09:26:47 - Adding type registration materialized_blob_wrapper -> org.hibernate.type.BasicTypeReference@490d9c41
|
||||
2025-10-24 09:26:47 - Adding type registration short -> org.hibernate.type.BasicTypeReference@47d81427
|
||||
2025-10-24 09:26:47 - Adding type registration short -> org.hibernate.type.BasicTypeReference@47d81427
|
||||
2025-10-24 09:26:47 - Adding type registration java.lang.Short -> org.hibernate.type.BasicTypeReference@47d81427
|
||||
2025-10-24 09:26:47 - Adding type registration integer -> org.hibernate.type.BasicTypeReference@3c5e4aac
|
||||
2025-10-24 09:26:47 - Adding type registration int -> org.hibernate.type.BasicTypeReference@3c5e4aac
|
||||
2025-10-24 09:26:47 - Adding type registration java.lang.Integer -> org.hibernate.type.BasicTypeReference@3c5e4aac
|
||||
2025-10-24 09:26:47 - Adding type registration long -> org.hibernate.type.BasicTypeReference@20afd96f
|
||||
2025-10-24 09:26:47 - Adding type registration long -> org.hibernate.type.BasicTypeReference@20afd96f
|
||||
2025-10-24 09:26:47 - Adding type registration java.lang.Long -> org.hibernate.type.BasicTypeReference@20afd96f
|
||||
2025-10-24 09:26:47 - Adding type registration float -> org.hibernate.type.BasicTypeReference@565a6af
|
||||
2025-10-24 09:26:47 - Adding type registration float -> org.hibernate.type.BasicTypeReference@565a6af
|
||||
2025-10-24 09:26:47 - Adding type registration java.lang.Float -> org.hibernate.type.BasicTypeReference@565a6af
|
||||
2025-10-24 09:26:47 - Adding type registration double -> org.hibernate.type.BasicTypeReference@21bf308
|
||||
2025-10-24 09:26:47 - Adding type registration double -> org.hibernate.type.BasicTypeReference@21bf308
|
||||
2025-10-24 09:26:47 - Adding type registration java.lang.Double -> org.hibernate.type.BasicTypeReference@21bf308
|
||||
2025-10-24 09:26:47 - Adding type registration big_integer -> org.hibernate.type.BasicTypeReference@4cded2cd
|
||||
2025-10-24 09:26:47 - Adding type registration java.math.BigInteger -> org.hibernate.type.BasicTypeReference@4cded2cd
|
||||
2025-10-24 09:26:47 - Adding type registration big_decimal -> org.hibernate.type.BasicTypeReference@12e40e98
|
||||
2025-10-24 09:26:47 - Adding type registration java.math.BigDecimal -> org.hibernate.type.BasicTypeReference@12e40e98
|
||||
2025-10-24 09:26:47 - Adding type registration character -> org.hibernate.type.BasicTypeReference@3a9c92b5
|
||||
2025-10-24 09:26:47 - Adding type registration char -> org.hibernate.type.BasicTypeReference@3a9c92b5
|
||||
2025-10-24 09:26:47 - Adding type registration java.lang.Character -> org.hibernate.type.BasicTypeReference@3a9c92b5
|
||||
2025-10-24 09:26:47 - Adding type registration character_nchar -> org.hibernate.type.BasicTypeReference@67c2b55d
|
||||
2025-10-24 09:26:47 - Adding type registration string -> org.hibernate.type.BasicTypeReference@5db04bd2
|
||||
2025-10-24 09:26:47 - Adding type registration java.lang.String -> org.hibernate.type.BasicTypeReference@5db04bd2
|
||||
2025-10-24 09:26:47 - Adding type registration nstring -> org.hibernate.type.BasicTypeReference@6f921e32
|
||||
2025-10-24 09:26:47 - Adding type registration characters -> org.hibernate.type.BasicTypeReference@31c5304f
|
||||
2025-10-24 09:26:47 - Adding type registration char[] -> org.hibernate.type.BasicTypeReference@31c5304f
|
||||
2025-10-24 09:26:47 - Adding type registration [C -> org.hibernate.type.BasicTypeReference@31c5304f
|
||||
2025-10-24 09:26:47 - Adding type registration wrapper-characters -> org.hibernate.type.BasicTypeReference@43df1377
|
||||
2025-10-24 09:26:47 - Adding type registration text -> org.hibernate.type.BasicTypeReference@1cee3e05
|
||||
2025-10-24 09:26:47 - Adding type registration ntext -> org.hibernate.type.BasicTypeReference@63f2d024
|
||||
2025-10-24 09:26:47 - Adding type registration clob -> org.hibernate.type.BasicTypeReference@7b2dd35d
|
||||
2025-10-24 09:26:47 - Adding type registration java.sql.Clob -> org.hibernate.type.BasicTypeReference@7b2dd35d
|
||||
2025-10-24 09:26:47 - Adding type registration nclob -> org.hibernate.type.BasicTypeReference@405223e4
|
||||
2025-10-24 09:26:47 - Adding type registration java.sql.NClob -> org.hibernate.type.BasicTypeReference@405223e4
|
||||
2025-10-24 09:26:47 - Adding type registration materialized_clob -> org.hibernate.type.BasicTypeReference@2d2133fd
|
||||
2025-10-24 09:26:47 - Adding type registration materialized_clob_char_array -> org.hibernate.type.BasicTypeReference@58a7a58d
|
||||
2025-10-24 09:26:47 - Adding type registration materialized_clob_character_array -> org.hibernate.type.BasicTypeReference@4d8522ff
|
||||
2025-10-24 09:26:47 - Adding type registration materialized_nclob -> org.hibernate.type.BasicTypeReference@1c9975a8
|
||||
2025-10-24 09:26:47 - Adding type registration materialized_nclob_character_array -> org.hibernate.type.BasicTypeReference@3883031d
|
||||
2025-10-24 09:26:47 - Adding type registration materialized_nclob_char_array -> org.hibernate.type.BasicTypeReference@5d6d424d
|
||||
2025-10-24 09:26:47 - Adding type registration Duration -> org.hibernate.type.BasicTypeReference@391b01c5
|
||||
2025-10-24 09:26:47 - Adding type registration java.time.Duration -> org.hibernate.type.BasicTypeReference@391b01c5
|
||||
2025-10-24 09:26:47 - Adding type registration LocalDateTime -> org.hibernate.type.BasicTypeReference@6e78177b
|
||||
2025-10-24 09:26:47 - Adding type registration java.time.LocalDateTime -> org.hibernate.type.BasicTypeReference@6e78177b
|
||||
2025-10-24 09:26:47 - Adding type registration LocalDate -> org.hibernate.type.BasicTypeReference@4ec37a42
|
||||
2025-10-24 09:26:47 - Adding type registration java.time.LocalDate -> org.hibernate.type.BasicTypeReference@4ec37a42
|
||||
2025-10-24 09:26:47 - Adding type registration LocalTime -> org.hibernate.type.BasicTypeReference@798b36fd
|
||||
2025-10-24 09:26:47 - Adding type registration java.time.LocalTime -> org.hibernate.type.BasicTypeReference@798b36fd
|
||||
2025-10-24 09:26:47 - Adding type registration OffsetDateTime -> org.hibernate.type.BasicTypeReference@18ff1520
|
||||
2025-10-24 09:26:47 - Adding type registration java.time.OffsetDateTime -> org.hibernate.type.BasicTypeReference@18ff1520
|
||||
2025-10-24 09:26:47 - Adding type registration OffsetDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@36120a8b
|
||||
2025-10-24 09:26:47 - Adding type registration OffsetDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@63d66761
|
||||
2025-10-24 09:26:47 - Adding type registration OffsetTime -> org.hibernate.type.BasicTypeReference@434a8938
|
||||
2025-10-24 09:26:47 - Adding type registration java.time.OffsetTime -> org.hibernate.type.BasicTypeReference@434a8938
|
||||
2025-10-24 09:26:47 - Adding type registration OffsetTimeUtc -> org.hibernate.type.BasicTypeReference@237cd264
|
||||
2025-10-24 09:26:47 - Adding type registration OffsetTimeWithTimezone -> org.hibernate.type.BasicTypeReference@51cd2d2
|
||||
2025-10-24 09:26:47 - Adding type registration OffsetTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@5521407f
|
||||
2025-10-24 09:26:47 - Adding type registration ZonedDateTime -> org.hibernate.type.BasicTypeReference@42b500aa
|
||||
2025-10-24 09:26:47 - Adding type registration java.time.ZonedDateTime -> org.hibernate.type.BasicTypeReference@42b500aa
|
||||
2025-10-24 09:26:47 - Adding type registration ZonedDateTimeWithTimezone -> org.hibernate.type.BasicTypeReference@71f056a
|
||||
2025-10-24 09:26:47 - Adding type registration ZonedDateTimeWithoutTimezone -> org.hibernate.type.BasicTypeReference@64f6dd19
|
||||
2025-10-24 09:26:47 - Adding type registration date -> org.hibernate.type.BasicTypeReference@3b8b5b40
|
||||
2025-10-24 09:26:47 - Adding type registration java.sql.Date -> org.hibernate.type.BasicTypeReference@3b8b5b40
|
||||
2025-10-24 09:26:47 - Adding type registration time -> org.hibernate.type.BasicTypeReference@5151accb
|
||||
2025-10-24 09:26:47 - Adding type registration java.sql.Time -> org.hibernate.type.BasicTypeReference@5151accb
|
||||
2025-10-24 09:26:47 - Adding type registration timestamp -> org.hibernate.type.BasicTypeReference@2e1ad7de
|
||||
2025-10-24 09:26:47 - Adding type registration java.sql.Timestamp -> org.hibernate.type.BasicTypeReference@2e1ad7de
|
||||
2025-10-24 09:26:47 - Adding type registration java.util.Date -> org.hibernate.type.BasicTypeReference@2e1ad7de
|
||||
2025-10-24 09:26:47 - Adding type registration calendar -> org.hibernate.type.BasicTypeReference@7c56c911
|
||||
2025-10-24 09:26:47 - Adding type registration java.util.Calendar -> org.hibernate.type.BasicTypeReference@7c56c911
|
||||
2025-10-24 09:26:47 - Adding type registration java.util.GregorianCalendar -> org.hibernate.type.BasicTypeReference@7c56c911
|
||||
2025-10-24 09:26:47 - Adding type registration calendar_date -> org.hibernate.type.BasicTypeReference@1de6dc80
|
||||
2025-10-24 09:26:47 - Adding type registration calendar_time -> org.hibernate.type.BasicTypeReference@418d1c03
|
||||
2025-10-24 09:26:47 - Adding type registration instant -> org.hibernate.type.BasicTypeReference@395197cb
|
||||
2025-10-24 09:26:47 - Adding type registration java.time.Instant -> org.hibernate.type.BasicTypeReference@395197cb
|
||||
2025-10-24 09:26:47 - Adding type registration uuid -> org.hibernate.type.BasicTypeReference@7305cfb1
|
||||
2025-10-24 09:26:47 - Adding type registration java.util.UUID -> org.hibernate.type.BasicTypeReference@7305cfb1
|
||||
2025-10-24 09:26:47 - Adding type registration pg-uuid -> org.hibernate.type.BasicTypeReference@7305cfb1
|
||||
2025-10-24 09:26:47 - Adding type registration uuid-binary -> org.hibernate.type.BasicTypeReference@582c1f8d
|
||||
2025-10-24 09:26:47 - Adding type registration uuid-char -> org.hibernate.type.BasicTypeReference@71687d8f
|
||||
2025-10-24 09:26:47 - Adding type registration class -> org.hibernate.type.BasicTypeReference@443253a6
|
||||
2025-10-24 09:26:47 - Adding type registration java.lang.Class -> org.hibernate.type.BasicTypeReference@443253a6
|
||||
2025-10-24 09:26:47 - Adding type registration currency -> org.hibernate.type.BasicTypeReference@191774d6
|
||||
2025-10-24 09:26:47 - Adding type registration Currency -> org.hibernate.type.BasicTypeReference@191774d6
|
||||
2025-10-24 09:26:47 - Adding type registration java.util.Currency -> org.hibernate.type.BasicTypeReference@191774d6
|
||||
2025-10-24 09:26:47 - Adding type registration locale -> org.hibernate.type.BasicTypeReference@21ffc00e
|
||||
2025-10-24 09:26:47 - Adding type registration java.util.Locale -> org.hibernate.type.BasicTypeReference@21ffc00e
|
||||
2025-10-24 09:26:47 - Adding type registration serializable -> org.hibernate.type.BasicTypeReference@134955bb
|
||||
2025-10-24 09:26:47 - Adding type registration java.io.Serializable -> org.hibernate.type.BasicTypeReference@134955bb
|
||||
2025-10-24 09:26:47 - Adding type registration timezone -> org.hibernate.type.BasicTypeReference@45b08b17
|
||||
2025-10-24 09:26:47 - Adding type registration java.util.TimeZone -> org.hibernate.type.BasicTypeReference@45b08b17
|
||||
2025-10-24 09:26:47 - Adding type registration ZoneOffset -> org.hibernate.type.BasicTypeReference@6723e6b3
|
||||
2025-10-24 09:26:47 - Adding type registration java.time.ZoneOffset -> org.hibernate.type.BasicTypeReference@6723e6b3
|
||||
2025-10-24 09:26:47 - Adding type registration url -> org.hibernate.type.BasicTypeReference@3883b5e9
|
||||
2025-10-24 09:26:47 - Adding type registration java.net.URL -> org.hibernate.type.BasicTypeReference@3883b5e9
|
||||
2025-10-24 09:26:47 - Adding type registration vector -> org.hibernate.type.BasicTypeReference@61becbcf
|
||||
2025-10-24 09:26:47 - Adding type registration row_version -> org.hibernate.type.BasicTypeReference@20171cdc
|
||||
2025-10-24 09:26:47 - Adding type registration object -> org.hibernate.type.JavaObjectType@719bb60d
|
||||
2025-10-24 09:26:47 - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@719bb60d
|
||||
2025-10-24 09:26:47 - Adding type registration null -> org.hibernate.type.NullType@3855b27e
|
||||
2025-10-24 09:26:47 - Adding type registration imm_date -> org.hibernate.type.BasicTypeReference@5305f936
|
||||
2025-10-24 09:26:47 - Adding type registration imm_time -> org.hibernate.type.BasicTypeReference@7d90764a
|
||||
2025-10-24 09:26:47 - Adding type registration imm_timestamp -> org.hibernate.type.BasicTypeReference@6843fdc4
|
||||
2025-10-24 09:26:47 - Adding type registration imm_calendar -> org.hibernate.type.BasicTypeReference@147375b3
|
||||
2025-10-24 09:26:47 - Adding type registration imm_calendar_date -> org.hibernate.type.BasicTypeReference@6f430ea8
|
||||
2025-10-24 09:26:47 - Adding type registration imm_calendar_time -> org.hibernate.type.BasicTypeReference@119f072c
|
||||
2025-10-24 09:26:47 - Adding type registration imm_binary -> org.hibernate.type.BasicTypeReference@66456506
|
||||
2025-10-24 09:26:47 - Adding type registration imm_serializable -> org.hibernate.type.BasicTypeReference@69944a90
|
||||
2025-10-24 09:26:47 - No LoadTimeWeaver setup: ignoring JPA class transformer
|
||||
2025-10-24 09:26:47 - HikariPool-1 - Starting...
|
||||
2025-10-24 09:26:48 - HikariPool-1 - Added connection org.postgresql.jdbc.PgConnection@7d15c513
|
||||
2025-10-24 09:26:48 - HikariPool-1 - Start completed.
|
||||
2025-10-24 09:26:48 - HHH90000025: PostgreSQLDialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default)
|
||||
2025-10-24 09:26:48 - addDescriptor(2003, org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@74bcf1ab) replaced previous registration(org.hibernate.type.descriptor.sql.internal.ArrayDdlTypeImpl@a11efe6)
|
||||
2025-10-24 09:26:48 - addDescriptor(6, org.hibernate.type.descriptor.sql.internal.CapacityDependentDdlType@5e6bbe63) replaced previous registration(org.hibernate.type.descriptor.sql.internal.DdlTypeImpl@69356aca)
|
||||
2025-10-24 09:26:48 - addDescriptor(2004, BlobTypeDescriptor(BLOB_BINDING)) replaced previous registration(BlobTypeDescriptor(DEFAULT))
|
||||
2025-10-24 09:26:48 - addDescriptor(2005, ClobTypeDescriptor(CLOB_BINDING)) replaced previous registration(ClobTypeDescriptor(DEFAULT))
|
||||
2025-10-24 09:26:48 - Adding type registration JAVA_OBJECT -> org.hibernate.type.JavaObjectType@4bcf08ae
|
||||
2025-10-24 09:26:48 - Adding type registration java.lang.Object -> org.hibernate.type.JavaObjectType@4bcf08ae
|
||||
2025-10-24 09:26:48 - Type registration key [java.lang.Object] overrode previous entry : `org.hibernate.type.JavaObjectType@719bb60d`
|
||||
2025-10-24 09:26:48 - Adding type registration org.hibernate.type.DurationType -> basicType@1(java.time.Duration,3015)
|
||||
2025-10-24 09:26:48 - Adding type registration Duration -> basicType@1(java.time.Duration,3015)
|
||||
2025-10-24 09:26:48 - Adding type registration java.time.Duration -> basicType@1(java.time.Duration,3015)
|
||||
2025-10-24 09:26:48 - Adding type registration org.hibernate.type.OffsetDateTimeType -> basicType@2(java.time.OffsetDateTime,3003)
|
||||
2025-10-24 09:26:48 - Adding type registration OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003)
|
||||
2025-10-24 09:26:48 - Adding type registration java.time.OffsetDateTime -> basicType@2(java.time.OffsetDateTime,3003)
|
||||
2025-10-24 09:26:48 - Adding type registration org.hibernate.type.ZonedDateTimeType -> basicType@3(java.time.ZonedDateTime,3003)
|
||||
2025-10-24 09:26:48 - Adding type registration ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003)
|
||||
2025-10-24 09:26:48 - Adding type registration java.time.ZonedDateTime -> basicType@3(java.time.ZonedDateTime,3003)
|
||||
2025-10-24 09:26:48 - Adding type registration org.hibernate.type.OffsetTimeType -> basicType@4(java.time.OffsetTime,3007)
|
||||
2025-10-24 09:26:48 - Adding type registration OffsetTime -> basicType@4(java.time.OffsetTime,3007)
|
||||
2025-10-24 09:26:48 - Adding type registration java.time.OffsetTime -> basicType@4(java.time.OffsetTime,3007)
|
||||
2025-10-24 09:26:48 - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@3f838072] to MetadataBuildingContext [org.hibernate.boot.internal.MetadataBuildingContextRootImpl@46c9ee28]
|
||||
2025-10-24 09:26:48 - HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration)
|
||||
2025-10-24 09:26:48 - Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@3f838072] to SessionFactoryImplementor [org.hibernate.internal.SessionFactoryImpl@58df431e]
|
||||
2025-10-24 09:26:48 - Handling #sessionFactoryCreated from [org.hibernate.internal.SessionFactoryImpl@58df431e] for TypeConfiguration
|
||||
2025-10-24 09:26:48 - Initialized JPA EntityManagerFactory for persistence unit 'default'
|
||||
2025-10-24 09:26:48 - Property 'userDn' not set - anonymous context will be used for read-only operations
|
||||
2025-10-24 09:26:48 - Unable to load io.netty.resolver.dns.macos.MacOSDnsServerAddressStreamProvider, fallback to system defaults. This may result in incorrect DNS resolutions on MacOS. Check whether you have a dependency on 'io.netty:netty-resolver-dns-native-macos'. Use DEBUG level to see the full stack: java.lang.UnsatisfiedLinkError: failed to load the required native library
|
||||
2025-10-24 09:26:49 - spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
|
||||
2025-10-24 09:26:49 -
|
||||
|
||||
Using generated security password: 33ac1b3a-354c-440f-9dd7-091fe188ba83
|
||||
|
||||
This generated password is for development use only. Your security configuration must be updated before running your application in production.
|
||||
|
||||
2025-10-24 09:26:49 - Global AuthenticationManager configured with UserDetailsService bean with name inMemoryUserDetailsManager
|
||||
2025-10-24 09:26:49 - Exposing 3 endpoints beneath base path '/actuator'
|
||||
2025-10-24 09:26:49 - Will secure any request with filters: DisableEncodeUrlFilter, WebAsyncManagerIntegrationFilter, SecurityContextHolderFilter, HeaderWriterFilter, CorsFilter, LogoutFilter, JwtAuthenticationFilter, RequestCacheAwareFilter, SecurityContextHolderAwareRequestFilter, AnonymousAuthenticationFilter, SessionManagementFilter, ExceptionTranslationFilter, AuthorizationFilter
|
||||
2025-10-24 09:26:50 - Adding {logging-channel-adapter:_org.springframework.integration.errorLogger} as a subscriber to the 'errorChannel' channel
|
||||
2025-10-24 09:26:50 - Channel 'user.errorChannel' has 1 subscriber(s).
|
||||
2025-10-24 09:26:50 - started bean '_org.springframework.integration.errorLogger'
|
||||
2025-10-24 09:26:50 - Tomcat started on port 8081 (http) with context path '/'
|
||||
2025-10-24 09:26:50 - Started UserApplication in 4.527 seconds (process running for 4.818)
|
||||
2025-10-24 09:27:16 - Initializing Spring DispatcherServlet 'dispatcherServlet'
|
||||
2025-10-24 09:27:16 - Initializing Servlet 'dispatcherServlet'
|
||||
2025-10-24 09:27:16 - Completed initialization in 3 ms
|
||||
2025-10-24 09:27:16 - Securing GET /actuator/health
|
||||
2025-10-24 09:27:16 - Set SecurityContextHolder to anonymous SecurityContext
|
||||
2025-10-24 09:27:16 - Secured GET /actuator/health
|
||||
2025-10-24 09:27:17 - LDAP health check failed
|
||||
org.springframework.ldap.CommunicationException: ldap.example.com:636
|
||||
at org.springframework.ldap.support.LdapUtils.convertLdapException(LdapUtils.java:107)
|
||||
at org.springframework.ldap.core.support.AbstractContextSource.createContext(AbstractContextSource.java:362)
|
||||
at org.springframework.ldap.core.support.AbstractContextSource.getReadOnlyContext(AbstractContextSource.java:172)
|
||||
at org.springframework.ldap.core.LdapTemplate.executeReadOnly(LdapTemplate.java:789)
|
||||
at org.springframework.boot.actuate.ldap.LdapHealthIndicator.doHealthCheck(LdapHealthIndicator.java:50)
|
||||
at org.springframework.boot.actuate.health.AbstractHealthIndicator.health(AbstractHealthIndicator.java:82)
|
||||
at org.springframework.boot.actuate.health.HealthIndicator.getHealth(HealthIndicator.java:37)
|
||||
at org.springframework.boot.actuate.health.HealthEndpointWebExtension.getHealth(HealthEndpointWebExtension.java:94)
|
||||
at org.springframework.boot.actuate.health.HealthEndpointWebExtension.getHealth(HealthEndpointWebExtension.java:47)
|
||||
at org.springframework.boot.actuate.health.HealthEndpointSupport.getLoggedHealth(HealthEndpointSupport.java:172)
|
||||
at org.springframework.boot.actuate.health.HealthEndpointSupport.getContribution(HealthEndpointSupport.java:145)
|
||||
at org.springframework.boot.actuate.health.HealthEndpointSupport.getAggregateContribution(HealthEndpointSupport.java:156)
|
||||
at org.springframework.boot.actuate.health.HealthEndpointSupport.getContribution(HealthEndpointSupport.java:141)
|
||||
at org.springframework.boot.actuate.health.HealthEndpointSupport.getHealth(HealthEndpointSupport.java:110)
|
||||
at org.springframework.boot.actuate.health.HealthEndpointSupport.getHealth(HealthEndpointSupport.java:81)
|
||||
at org.springframework.boot.actuate.health.HealthEndpointWebExtension.health(HealthEndpointWebExtension.java:80)
|
||||
at org.springframework.boot.actuate.health.HealthEndpointWebExtension.health(HealthEndpointWebExtension.java:69)
|
||||
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
|
||||
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
|
||||
at org.springframework.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:281)
|
||||
at org.springframework.boot.actuate.endpoint.invoke.reflect.ReflectiveOperationInvoker.invoke(ReflectiveOperationInvoker.java:74)
|
||||
at org.springframework.boot.actuate.endpoint.annotation.AbstractDiscoveredOperation.invoke(AbstractDiscoveredOperation.java:60)
|
||||
at org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$ServletWebOperationAdapter.handle(AbstractWebMvcEndpointHandlerMapping.java:327)
|
||||
at org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$OperationHandler.handle(AbstractWebMvcEndpointHandlerMapping.java:434)
|
||||
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
|
||||
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
|
||||
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:255)
|
||||
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:188)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:926)
|
||||
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:831)
|
||||
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
|
||||
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1089)
|
||||
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:979)
|
||||
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1014)
|
||||
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903)
|
||||
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564)
|
||||
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885)
|
||||
at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:195)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
|
||||
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
|
||||
at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:108)
|
||||
at org.springframework.security.web.FilterChainProxy.lambda$doFilterInternal$3(FilterChainProxy.java:231)
|
||||
at org.springframework.security.web.ObservationFilterChainDecorator$FilterObservation$SimpleFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:479)
|
||||
at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$1(ObservationFilterChainDecorator.java:340)
|
||||
at org.springframework.security.web.ObservationFilterChainDecorator.lambda$wrapSecured$0(ObservationFilterChainDecorator.java:82)
|
||||
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:128)
|
||||
at org.springframework.security.web.access.intercept.AuthorizationFilter.doFilter(AuthorizationFilter.java:100)
|
||||
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)
|
||||
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)
|
||||
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
|
||||
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:126)
|
||||
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:120)
|
||||
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)
|
||||
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)
|
||||
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
|
||||
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:131)
|
||||
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:85)
|
||||
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)
|
||||
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)
|
||||
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
|
||||
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:100)
|
||||
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)
|
||||
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)
|
||||
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
|
||||
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:179)
|
||||
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)
|
||||
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)
|
||||
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
|
||||
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)
|
||||
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)
|
||||
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)
|
||||
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:101)
|
||||
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)
|
||||
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)
|
||||
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
|
||||
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:107)
|
||||
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:93)
|
||||
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)
|
||||
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)
|
||||
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
|
||||
at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
|
||||
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)
|
||||
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)
|
||||
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
|
||||
at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)
|
||||
at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
|
||||
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)
|
||||
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)
|
||||
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
|
||||
at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:82)
|
||||
at org.springframework.security.web.context.SecurityContextHolderFilter.doFilter(SecurityContextHolderFilter.java:69)
|
||||
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)
|
||||
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)
|
||||
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
|
||||
at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:62)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
|
||||
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)
|
||||
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:227)
|
||||
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
|
||||
at org.springframework.security.web.session.DisableEncodeUrlFilter.doFilterInternal(DisableEncodeUrlFilter.java:42)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
|
||||
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.wrapFilter(ObservationFilterChainDecorator.java:240)
|
||||
at org.springframework.security.web.ObservationFilterChainDecorator$AroundFilterObservation$SimpleAroundFilterObservation.lambda$wrap$0(ObservationFilterChainDecorator.java:323)
|
||||
at org.springframework.security.web.ObservationFilterChainDecorator$ObservationFilter.doFilter(ObservationFilterChainDecorator.java:224)
|
||||
at org.springframework.security.web.ObservationFilterChainDecorator$VirtualFilterChain.doFilter(ObservationFilterChainDecorator.java:137)
|
||||
at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:233)
|
||||
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:191)
|
||||
at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)
|
||||
at org.springframework.web.servlet.handler.HandlerMappingIntrospector.lambda$createCacheFilter$3(HandlerMappingIntrospector.java:195)
|
||||
at org.springframework.web.filter.CompositeFilter$VirtualFilterChain.doFilter(CompositeFilter.java:113)
|
||||
at org.springframework.web.filter.CompositeFilter.doFilter(CompositeFilter.java:74)
|
||||
at org.springframework.security.config.annotation.web.configuration.WebMvcSecurityConfiguration$CompositeFilterChainProxy.doFilter(WebMvcSecurityConfiguration.java:230)
|
||||
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:362)
|
||||
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:278)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
|
||||
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
|
||||
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
|
||||
at org.springframework.web.filter.ServerHttpObservationFilter.doFilterInternal(ServerHttpObservationFilter.java:113)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
|
||||
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
|
||||
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:164)
|
||||
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:140)
|
||||
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:167)
|
||||
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
|
||||
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483)
|
||||
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115)
|
||||
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
|
||||
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
|
||||
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:344)
|
||||
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:384)
|
||||
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
|
||||
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:905)
|
||||
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741)
|
||||
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
|
||||
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1190)
|
||||
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
|
||||
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
|
||||
at java.base/java.lang.Thread.run(Thread.java:1583)
|
||||
Caused by: javax.naming.CommunicationException: ldap.example.com:636
|
||||
at java.naming/com.sun.jndi.ldap.Connection.<init>(Connection.java:251)
|
||||
at java.naming/com.sun.jndi.ldap.LdapClient.<init>(LdapClient.java:141)
|
||||
at java.naming/com.sun.jndi.ldap.LdapClient.getInstance(LdapClient.java:1620)
|
||||
at java.naming/com.sun.jndi.ldap.LdapCtx.connect(LdapCtx.java:2848)
|
||||
at java.naming/com.sun.jndi.ldap.LdapCtx.<init>(LdapCtx.java:349)
|
||||
at java.naming/com.sun.jndi.ldap.LdapCtxFactory.getLdapCtxFromUrl(LdapCtxFactory.java:229)
|
||||
at java.naming/com.sun.jndi.ldap.LdapCtxFactory.getUsingURL(LdapCtxFactory.java:189)
|
||||
at java.naming/com.sun.jndi.ldap.LdapCtxFactory.getUsingURLs(LdapCtxFactory.java:247)
|
||||
at java.naming/com.sun.jndi.ldap.LdapCtxFactory.getLdapCtxInstance(LdapCtxFactory.java:154)
|
||||
at java.naming/com.sun.jndi.ldap.LdapCtxFactory.getInitialContext(LdapCtxFactory.java:84)
|
||||
at java.naming/javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:520)
|
||||
at java.naming/javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:305)
|
||||
at java.naming/javax.naming.InitialContext.init(InitialContext.java:236)
|
||||
at java.naming/javax.naming.ldap.InitialLdapContext.<init>(InitialLdapContext.java:154)
|
||||
at org.springframework.ldap.core.support.LdapContextSource.getDirContextInstance(LdapContextSource.java:44)
|
||||
at org.springframework.ldap.core.support.AbstractContextSource.createContext(AbstractContextSource.java:350)
|
||||
... 153 common frames omitted
|
||||
Caused by: java.net.UnknownHostException: ldap.example.com
|
||||
at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:567)
|
||||
at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327)
|
||||
at java.base/java.net.Socket.connect(Socket.java:751)
|
||||
at java.base/sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:304)
|
||||
at java.base/sun.security.ssl.SSLSocketImpl.<init>(SSLSocketImpl.java:163)
|
||||
at java.base/sun.security.ssl.SSLSocketFactoryImpl.createSocket(SSLSocketFactoryImpl.java:86)
|
||||
at java.naming/com.sun.jndi.ldap.Connection.createConnectionSocket(Connection.java:350)
|
||||
at java.naming/com.sun.jndi.ldap.Connection.createSocket(Connection.java:283)
|
||||
at java.naming/com.sun.jndi.ldap.Connection.<init>(Connection.java:230)
|
||||
... 168 common frames omitted
|
||||
2025-10-24 09:27:18 - Securing GET /swagger-ui.html
|
||||
2025-10-24 09:27:18 - Set SecurityContextHolder to anonymous SecurityContext
|
||||
2025-10-24 09:27:18 - Secured GET /swagger-ui.html
|
||||
2025-10-24 09:27:51 - Removing {logging-channel-adapter:_org.springframework.integration.errorLogger} as a subscriber to the 'errorChannel' channel
|
||||
2025-10-24 09:27:51 - Channel 'user.errorChannel' has 0 subscriber(s).
|
||||
2025-10-24 09:27:51 - stopped bean '_org.springframework.integration.errorLogger'
|
||||
2025-10-24 09:27:51 - Closing JPA EntityManagerFactory for persistence unit 'default'
|
||||
2025-10-24 09:27:51 - Handling #sessionFactoryClosed from [org.hibernate.internal.SessionFactoryImpl@58df431e] for TypeConfiguration
|
||||
2025-10-24 09:27:51 - Un-scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration$Scope@c7b775] from SessionFactory [org.hibernate.internal.SessionFactoryImpl@58df431e]
|
||||
2025-10-24 09:27:51 - HikariPool-1 - Shutdown initiated...
|
||||
2025-10-24 09:27:51 - HikariPool-1 - Shutdown completed.
|
||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,44 @@
|
||||
package com.unicorn.hgzero.user.config;
|
||||
|
||||
import com.azure.messaging.eventhubs.EventHubProducerClient;
|
||||
import com.azure.messaging.eventhubs.EventHubClientBuilder;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnExpression;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
/**
|
||||
* Azure EventHub 설정
|
||||
* 사용자 인증 관련 이벤트 발행을 위한 EventHub 설정
|
||||
*/
|
||||
@Slf4j
|
||||
@Configuration
|
||||
public class EventHubConfig {
|
||||
|
||||
@Value("${spring.cloud.azure.eventhub.connection-string:}")
|
||||
private String connectionString;
|
||||
|
||||
@Value("${spring.cloud.azure.eventhub.name:hgzero-eventhub-name}")
|
||||
private String eventHubName;
|
||||
|
||||
/**
|
||||
* EventHub Producer Client 빈 생성
|
||||
* 연결 문자열이 있을 때만 생성
|
||||
*/
|
||||
@Bean
|
||||
@ConditionalOnExpression("'${spring.cloud.azure.eventhub.connection-string:}'.length() > 0")
|
||||
public EventHubProducerClient eventHubProducerClient() {
|
||||
try {
|
||||
EventHubProducerClient client = new EventHubClientBuilder()
|
||||
.connectionString(connectionString, eventHubName)
|
||||
.buildProducerClient();
|
||||
|
||||
log.info("EventHub Producer Client 생성 완료: {}", eventHubName);
|
||||
return client;
|
||||
} catch (Exception e) {
|
||||
log.error("EventHub Producer Client 생성 실패: {}", e.getMessage());
|
||||
throw new RuntimeException("EventHub Producer Client 생성 실패", e);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -46,7 +46,7 @@ public class JwtTokenProvider {
|
||||
public boolean validateToken(String token) {
|
||||
try {
|
||||
Jwts.parser()
|
||||
.setSigningKey(secretKey)
|
||||
.verifyWith(secretKey)
|
||||
.build()
|
||||
.parseClaimsJws(token);
|
||||
return true;
|
||||
@ -67,7 +67,7 @@ public class JwtTokenProvider {
|
||||
*/
|
||||
public String getUserId(String token) {
|
||||
Claims claims = Jwts.parser()
|
||||
.setSigningKey(secretKey)
|
||||
.verifyWith(secretKey)
|
||||
.build()
|
||||
.parseClaimsJws(token)
|
||||
.getBody();
|
||||
@ -80,7 +80,7 @@ public class JwtTokenProvider {
|
||||
*/
|
||||
public String getUsername(String token) {
|
||||
Claims claims = Jwts.parser()
|
||||
.setSigningKey(secretKey)
|
||||
.verifyWith(secretKey)
|
||||
.build()
|
||||
.parseClaimsJws(token)
|
||||
.getBody();
|
||||
@ -93,7 +93,7 @@ public class JwtTokenProvider {
|
||||
*/
|
||||
public String getAuthority(String token) {
|
||||
Claims claims = Jwts.parser()
|
||||
.setSigningKey(secretKey)
|
||||
.verifyWith(secretKey)
|
||||
.build()
|
||||
.parseClaimsJws(token)
|
||||
.getBody();
|
||||
@ -107,7 +107,7 @@ public class JwtTokenProvider {
|
||||
public boolean isTokenExpired(String token) {
|
||||
try {
|
||||
Claims claims = Jwts.parser()
|
||||
.setSigningKey(secretKey)
|
||||
.verifyWith(secretKey)
|
||||
.build()
|
||||
.parseClaimsJws(token)
|
||||
.getBody();
|
||||
@ -123,7 +123,7 @@ public class JwtTokenProvider {
|
||||
*/
|
||||
public Date getExpirationDate(String token) {
|
||||
Claims claims = Jwts.parser()
|
||||
.setSigningKey(secretKey)
|
||||
.verifyWith(secretKey)
|
||||
.build()
|
||||
.parseClaimsJws(token)
|
||||
.getBody();
|
||||
|
||||
@ -0,0 +1,33 @@
|
||||
package com.unicorn.hgzero.user.service;
|
||||
|
||||
/**
|
||||
* 이벤트 발행 서비스 인터페이스
|
||||
* 사용자 인증 관련 이벤트를 외부 시스템에 발행
|
||||
*/
|
||||
public interface EventPublishService {
|
||||
|
||||
/**
|
||||
* 로그인 이벤트 발행
|
||||
*
|
||||
* @param userId 사용자 ID
|
||||
* @param username 사용자명
|
||||
* @param timestamp 로그인 시각
|
||||
*/
|
||||
void publishLoginEvent(String userId, String username, long timestamp);
|
||||
|
||||
/**
|
||||
* 로그아웃 이벤트 발행
|
||||
*
|
||||
* @param userId 사용자 ID
|
||||
* @param timestamp 로그아웃 시각
|
||||
*/
|
||||
void publishLogoutEvent(String userId, long timestamp);
|
||||
|
||||
/**
|
||||
* 토큰 갱신 이벤트 발행
|
||||
*
|
||||
* @param userId 사용자 ID
|
||||
* @param timestamp 토큰 갱신 시각
|
||||
*/
|
||||
void publishTokenRefreshEvent(String userId, long timestamp);
|
||||
}
|
||||
@ -0,0 +1,89 @@
|
||||
package com.unicorn.hgzero.user.service;
|
||||
|
||||
import com.azure.messaging.eventhubs.EventData;
|
||||
import com.azure.messaging.eventhubs.EventHubProducerClient;
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 이벤트 발행 서비스 구현체
|
||||
* Azure EventHub를 통한 사용자 인증 이벤트 발행
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
@ConditionalOnBean(EventHubProducerClient.class)
|
||||
public class EventPublishServiceImpl implements EventPublishService {
|
||||
|
||||
private final EventHubProducerClient eventHubProducerClient;
|
||||
private final ObjectMapper objectMapper = new ObjectMapper();
|
||||
|
||||
@Override
|
||||
public void publishLoginEvent(String userId, String username, long timestamp) {
|
||||
Map<String, Object> eventData = new HashMap<>();
|
||||
eventData.put("eventType", "USER_LOGIN");
|
||||
eventData.put("userId", userId);
|
||||
eventData.put("username", username);
|
||||
eventData.put("timestamp", timestamp);
|
||||
eventData.put("eventTime", Instant.ofEpochMilli(timestamp).toString());
|
||||
|
||||
publishEvent(eventData, "로그인 이벤트");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void publishLogoutEvent(String userId, long timestamp) {
|
||||
Map<String, Object> eventData = new HashMap<>();
|
||||
eventData.put("eventType", "USER_LOGOUT");
|
||||
eventData.put("userId", userId);
|
||||
eventData.put("timestamp", timestamp);
|
||||
eventData.put("eventTime", Instant.ofEpochMilli(timestamp).toString());
|
||||
|
||||
publishEvent(eventData, "로그아웃 이벤트");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void publishTokenRefreshEvent(String userId, long timestamp) {
|
||||
Map<String, Object> eventData = new HashMap<>();
|
||||
eventData.put("eventType", "TOKEN_REFRESH");
|
||||
eventData.put("userId", userId);
|
||||
eventData.put("timestamp", timestamp);
|
||||
eventData.put("eventTime", Instant.ofEpochMilli(timestamp).toString());
|
||||
|
||||
publishEvent(eventData, "토큰 갱신 이벤트");
|
||||
}
|
||||
|
||||
/**
|
||||
* EventHub로 이벤트 발행
|
||||
*
|
||||
* @param eventData 이벤트 데이터
|
||||
* @param eventDescription 이벤트 설명 (로깅용)
|
||||
*/
|
||||
private void publishEvent(Map<String, Object> eventData, String eventDescription) {
|
||||
if (eventHubProducerClient == null) {
|
||||
log.debug("EventHub Producer Client가 없어 {} 발행을 건너뜀", eventDescription);
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
String jsonData = objectMapper.writeValueAsString(eventData);
|
||||
EventData event = new EventData(jsonData);
|
||||
|
||||
// EventData를 Iterable로 감싸서 전송
|
||||
eventHubProducerClient.send(java.util.Collections.singletonList(event));
|
||||
log.debug("{} 발행 완료: {}", eventDescription, eventData.get("userId"));
|
||||
|
||||
} catch (JsonProcessingException e) {
|
||||
log.error("{} JSON 변환 실패: {}", eventDescription, e.getMessage());
|
||||
} catch (Exception e) {
|
||||
log.error("{} 발행 실패: {}", eventDescription, e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,30 @@
|
||||
package com.unicorn.hgzero.user.service;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* No-Op 이벤트 발행 서비스
|
||||
* EventHub가 설정되지 않은 경우 사용되는 기본 구현체
|
||||
*/
|
||||
@Slf4j
|
||||
@Service
|
||||
@ConditionalOnMissingBean(EventPublishServiceImpl.class)
|
||||
public class NoOpEventPublishService implements EventPublishService {
|
||||
|
||||
@Override
|
||||
public void publishLoginEvent(String userId, String username, long timestamp) {
|
||||
log.debug("EventHub 미설정으로 로그인 이벤트 발행 건너뜀: userId={}", userId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void publishLogoutEvent(String userId, long timestamp) {
|
||||
log.debug("EventHub 미설정으로 로그아웃 이벤트 발행 건너뜀: userId={}", userId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void publishTokenRefreshEvent(String userId, long timestamp) {
|
||||
log.debug("EventHub 미설정으로 토큰 갱신 이벤트 발행 건너뜀: userId={}", userId);
|
||||
}
|
||||
}
|
||||
@ -41,6 +41,7 @@ public class UserServiceImpl implements UserService {
|
||||
private final UserRepository userRepository;
|
||||
private final JwtTokenProvider jwtTokenProvider;
|
||||
private final RedisTemplate<String, String> redisTemplate;
|
||||
private final EventPublishService eventPublishService;
|
||||
|
||||
@Value("${jwt.secret}")
|
||||
private String jwtSecret;
|
||||
@ -123,6 +124,9 @@ public class UserServiceImpl implements UserService {
|
||||
saveRefreshToken(user.getUserId(), refreshToken);
|
||||
|
||||
log.info("로그인 성공: userId={}", request.getUserId());
|
||||
|
||||
// 로그인 이벤트 발행
|
||||
eventPublishService.publishLoginEvent(user.getUserId(), user.getUsername(), System.currentTimeMillis());
|
||||
|
||||
return LoginResponse.builder()
|
||||
.accessToken(accessToken)
|
||||
@ -173,6 +177,9 @@ public class UserServiceImpl implements UserService {
|
||||
String newAccessToken = generateAccessToken(user);
|
||||
|
||||
log.info("토큰 갱신 성공: userId={}", userId);
|
||||
|
||||
// 토큰 갱신 이벤트 발행
|
||||
eventPublishService.publishTokenRefreshEvent(userId, System.currentTimeMillis());
|
||||
|
||||
return RefreshTokenResponse.builder()
|
||||
.accessToken(newAccessToken)
|
||||
@ -191,6 +198,9 @@ public class UserServiceImpl implements UserService {
|
||||
|
||||
// Redis에서 Refresh Token 삭제
|
||||
deleteRefreshToken(userId);
|
||||
|
||||
// 로그아웃 이벤트 발행
|
||||
eventPublishService.publishLogoutEvent(userId, System.currentTimeMillis());
|
||||
|
||||
log.info("로그아웃 완료: userId={}", userId);
|
||||
}
|
||||
|
||||
@ -8,7 +8,7 @@ spring:
|
||||
datasource:
|
||||
url: jdbc:${DB_KIND:postgresql}://${DB_HOST:localhost}:${DB_PORT:5432}/${DB_NAME:userdb}
|
||||
username: ${DB_USERNAME:hgzerouser}
|
||||
password: ${DB_PASSWORD:}
|
||||
password: ${DB_PASSWORD:Hi5Jessica!}
|
||||
driver-class-name: org.postgresql.Driver
|
||||
hikari:
|
||||
maximum-pool-size: 20
|
||||
@ -25,8 +25,13 @@ spring:
|
||||
hibernate:
|
||||
format_sql: true
|
||||
use_sql_comments: true
|
||||
dialect: org.hibernate.dialect.PostgreSQLDialect
|
||||
jdbc:
|
||||
time_zone: UTC
|
||||
hibernate:
|
||||
ddl-auto: ${JPA_DDL_AUTO:update}
|
||||
database: postgresql
|
||||
database-platform: org.hibernate.dialect.PostgreSQLDialect
|
||||
|
||||
# Redis Configuration
|
||||
data:
|
||||
@ -43,13 +48,13 @@ spring:
|
||||
max-wait: -1ms
|
||||
database: ${REDIS_DATABASE:0}
|
||||
|
||||
# LDAP Configuration
|
||||
ldap:
|
||||
urls: ${LDAP_URLS:ldaps://ldap.example.com:636}
|
||||
base: ${LDAP_BASE:dc=example,dc=com}
|
||||
username: ${LDAP_USERNAME:}
|
||||
password: ${LDAP_PASSWORD:}
|
||||
user-dn-pattern: ${LDAP_USER_DN_PATTERN:uid={0},ou=people}
|
||||
# LDAP Configuration (비활성화 for development)
|
||||
# ldap:
|
||||
# urls: ${LDAP_URLS:ldaps://ldap.example.com:636}
|
||||
# base: ${LDAP_BASE:dc=example,dc=com}
|
||||
# username: ${LDAP_USERNAME:}
|
||||
# password: ${LDAP_PASSWORD:}
|
||||
# user-dn-pattern: ${LDAP_USER_DN_PATTERN:uid={0},ou=people}
|
||||
|
||||
# Event Configuration (Azure EventHub)
|
||||
cloud:
|
||||
@ -96,6 +101,8 @@ management:
|
||||
enabled: true
|
||||
readinessState:
|
||||
enabled: true
|
||||
ldap:
|
||||
enabled: false
|
||||
|
||||
# OpenAPI Documentation
|
||||
springdoc:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user