0759f23b22
Backend Refactoring
...
1. Enhanced User Session Management & Logging
CurrentSessionProvider (backend/server/src/main/java/dev/rheinsw/server/security/session/CurrentSessionProvider.java):
- Added comprehensive null safety checks for JWT authentication
- Implemented detailed logging for user session retrieval
- Added validation for all required JWT claims (sub, preferred_username, email)
- Enhanced error messages with specific validation failures
UserSessionFilter (backend/server/src/main/java/dev/rheinsw/server/security/session/UserSessionFilter.java):
- Replaced silent exception handling with proper logging
- Added request context logging (method, URI)
- Categorized different exception types for better debugging
- Enhanced error visibility while maintaining non-blocking behavior
UserService (backend/server/src/main/java/dev/rheinsw/server/security/user/UserService.java):
- Added comprehensive null safety validations
- Implemented detailed logging for user creation and lookup operations
- Enhanced exception handling with proper error context
- Added input validation for session data
2. Improved Controller Logging & Validation
CustomerController (backend/server/src/main/java/dev/rheinsw/server/internal/customer/controller/CustomerController.java):
- Added comprehensive logging for all user actions
- Implemented input validation with @Valid annotations
- Enhanced error handling with user context
- Added null checks for path parameters
ProjectController (backend/server/src/main/java/dev/rheinsw/server/internal/project/controller/ProjectController.java):
- Similar logging and validation improvements
- Added comprehensive user action tracking
- Enhanced error handling with proper validation
3. Enhanced DTO Validation
CreateCustomerDto (backend/server/src/main/java/dev/rheinsw/server/internal/customer/dtos/CreateCustomerDto.java):
- Added Bean Validation annotations (@NotBlank, @Email, @Size)
- Implemented comprehensive field validation
- Added proper error messages in German
CustomerValidationRequest & CreateCustomerProjectDto: Similar validation enhancements
4. Improved Exception Handling
GlobalExceptionHandler (backend/common/src/main/java/dev/rheinsw/common/controller/exception/handler/GlobalExceptionHandler.java):
- Added correlation IDs for better error tracking
- Replaced unsafe error message exposure with secure error responses
- Enhanced logging with proper log levels and context
- Added specific handlers for validation errors and illegal arguments
- Implemented structured error responses with correlation tracking
ProjectUseCaseImpl (backend/server/src/main/java/dev/rheinsw/server/internal/project/usecase/ProjectUseCaseImpl.java):
- Fixed null return issue (now throws exceptions instead)
- Added comprehensive input validation
- Enhanced error handling with proper exception types
- Added detailed logging for all operations
5. Test Coverage & Quality
Added comprehensive unit tests:
- CurrentSessionProviderTest: 8 test cases covering all authentication scenarios
- UserServiceTest: 7 test cases covering user creation and validation
- ProjectUseCaseImplTest: 14 test cases covering project operations
- Added test dependencies (spring-boot-starter-test, spring-security-test)
6. Frontend Compatibility
Updated frontend error handling:
- Enhanced validateCustomer.ts and addCustomer.ts to log correlation IDs
- Maintained backward compatibility with existing error handling
- Added debugging support for new correlation ID feature
7. Build & Deployment
- ✅ Backend: Builds successfully with all tests passing
- ✅ Frontend: Both frontend projects build successfully
- ✅ Dependencies: Added necessary test dependencies
- ✅ Validation: Bean Validation is properly configured and working
🔒 Security & Reliability Improvements
1. Authentication Security: Robust JWT validation with proper error handling
2. Input Validation: Comprehensive validation across all DTOs
3. Error Handling: Secure error responses that don't expose internal details
4. Null Safety: Extensive null checks throughout the codebase
5. Logging Security: No sensitive data logged, proper correlation IDs for debugging
📈 Monitoring & Debugging
1. Correlation IDs: Every error response includes a unique correlation ID
2. Structured Logging: Consistent logging patterns with user context
3. Request Tracing: User actions are logged with proper context
4. Error Classification: Different error types handled appropriately
2025-07-23 00:18:26 +02:00
0724f3b1e7
Remove callApi, refactor API integrations, and adjust error handling
...
- Delete unused `callApi` utility and related imports across components.
- Replace `callApi` with direct `fetch` usage in `validateCustomer` and `addCustomer`.
- Update `customerRoutes` to include `/api` prefix for consistency.
- Refactor `useErrorHandler` to ensure comprehensive state management during errors.
- Improve `ErrorBoundary` component text for better clarity in fallback UI.
- Align `CustomersPage` logic with `useCallback` for optimized dependency management.
2025-07-11 20:21:45 +02:00
86be1e8920
Enhance NewCustomerModal with callback support and toast notifications
...
- Add `onCustomerCreated` callback to refresh customer list after creation.
- Integrate `showInfoToast` and `showSuccessToast` for validation and creation feedback.
- Prevent closing modal on backdrop click; add explicit cancel button.
- Refactor `addCustomer` to use `callApi` and centralized routes.
- Simplify customer fetching logic in `CustomersPage` with reusable function.
2025-07-11 19:53:52 +02:00
2a95efb75f
Remove CustomerRepository and replace with direct API calls
...
- Remove `CustomerRepository` and its methods for customer management and caching.
- Refactor customer-related pages (`[id]/page.tsx`, `customers/page.tsx`) to use direct `fetch` API calls.
- Update breadcrumb resolver to fetch data directly from the API.
- Simplify `addCustomer` use case to avoid repository dependency.
2025-07-11 18:38:44 +02:00
328c0537ba
Introduce caching in CustomerRepository and refactor API integration
...
- Add in-memory caching for customer data in `CustomerRepository` to reduce API calls.
- Replace direct API calls with methods from `CustomerRepository`.
- Update customer-related pages (`[id]/page.tsx`, `customers/page.tsx`) to use `CustomerRepository` for data fetching.
- Adjust breadcrumb resolver to leverage `CustomerRepository`.
- Remove `axios` dependency from customer-related components.
2025-07-07 22:02:55 +02:00
4ae62f2911
Handle empty input validation in validateCustomer use case
2025-07-07 22:02:38 +02:00
e00142ff81
Customer Detail Page and Enhance dynamic breadcrumbs
2025-07-06 17:24:12 +00:00
916dbfcf95
Add customer management
2025-07-06 08:31:48 +00:00