Skip to content

Commit 640e66e

Browse files
committed
Fix multi-tenant data leakage in getAllBookings() method
- Add tenant filtering to getAllBookings() to prevent cross-tenant data access - Align with tenant filtering pattern used in other services (Payment, Notification, User, Train) - Fixes security vulnerability where one tenant could view bookings from all tenants
1 parent 3f68845 commit 640e66e

1 file changed

Lines changed: 9 additions & 1 deletion

File tree

irctc-booking-service/src/main/java/com/irctc/booking/service/SimpleBookingService.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,15 @@ public class SimpleBookingService {
6161
private KafkaTemplate<String, Object> kafkaTemplate;
6262

6363
public List<SimpleBooking> getAllBookings() {
64-
return bookingRepository.findAll();
64+
List<SimpleBooking> bookings = bookingRepository.findAll();
65+
// Filter by tenant if context is set
66+
if (TenantContext.hasTenant()) {
67+
String tenantId = TenantContext.getTenantId();
68+
return bookings.stream()
69+
.filter(b -> tenantId.equals(b.getTenantId()))
70+
.toList();
71+
}
72+
return bookings;
6573
}
6674

6775
@Bulkhead(name = "booking-query", type = Bulkhead.Type.SEMAPHORE)

0 commit comments

Comments
 (0)