Commit Graph

27 Commits

Author SHA1 Message Date
Cedric 68783cc892 fix: throw ResourceNotFoundException instead of returning null, replace full-table-scan list queries with JPQL 2026-05-05 15:20:46 +02:00
Cedric 9c91da9f30 test: fix ExpenseListRepositoryTest with H2 and proper save-then-find pattern
Added H2 as a test-scoped dependency so @DataJpaTest has an embedded
database. Rewrote the test to save an entity and assert on the returned
ID rather than assuming a record exists at ID=1.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-05 11:23:51 +02:00
Cedric 024b3880e7 security: add per-user/IP rate limiting via Bucket4j
RateLimitFilter (OncePerRequestFilter) enforces 60 req/min per
authenticated Google ID or client IP, using Bucket4j in-memory
token buckets. Filter is registered after BearerTokenAuthenticationFilter
in the production security chain. Added 4 unit tests covering
allow, block, per-IP isolation, and X-Forwarded-For preference.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-05 11:19:42 +02:00
Cedric 457efab452 security: enforce JWT-based authorization on AppUserController
Added AuthenticatedUserResolver injection and assertSelf guard to
getUser, getUserByGoogleId, and deleteUser endpoints. createUser
remains open for registration. Added 7 controller tests covering
validation failures and 403 enforcement.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-05 11:13:05 +02:00
Cedric 95688e5111 test: add unit tests for AuthenticatedUserResolver 2026-05-05 10:03:35 +02:00
Cedric bb2a4d70b2 feat: add ExpenseListController validation and authorization tests 2026-05-04 22:46:29 +02:00
Cedric a948bca2fc feat: add GlobalExceptionHandler, @Valid to user creation, AuthenticatedUserResolver stub, and rewrite ExpenseListController with authorization 2026-05-04 22:44:37 +02:00
Cedric 3bea06fead feat: add Bean Validation annotations to request models 2026-05-04 22:36:20 +02:00
Cedric 15792bad28 Add CategoryService and integrate category handling in ExpenseListController
Build and Deploy Spring Boot Server / build (push) Successful in 10m8s
- Introduced CategoryService to manage standard categories.
- Updated ExpenseListController to set default categories when creating an expense list.
- Modified ExpenseChangeRequest and ExpenseInput to include category field.
- Enhanced DataInitializer to ensure standard categories are initialized.
2025-05-11 00:59:54 +02:00
Cedric 814b2221c8 #7
Build and Deploy Spring Boot Server / build (push) Successful in 10m8s
2025-05-10 19:07:50 +02:00
Cedric b669855a56 Dateien nach "src/main/resources/static" hochladen 2025-01-12 04:51:41 -08:00
Cedric 4fca98dc72 add logos
Build and Deploy Spring Boot Server / build (push) Successful in 9m55s
2025-01-12 10:11:57 +01:00
Cedric c453411444 fixes
Build and Deploy Spring Boot Server / build (push) Successful in 10m0s
2025-01-11 21:37:11 +01:00
Cedric 85e4a2b125 remove dotenv
Build and Deploy Spring Boot Server / build (push) Successful in 10m11s
2025-01-11 21:20:58 +01:00
Cedric ece3e1d697 fix app_props
Build and Deploy Spring Boot Server / build (push) Successful in 10m0s
2025-01-11 20:48:53 +01:00
Cedric d39b5e875c docker compose sample
Build and Deploy Spring Boot Server / build (push) Successful in 10m1s
2025-01-11 20:24:33 +01:00
Cedric 5546b0ba3b better secret handling docker api upgrade 2025-01-07 23:40:00 +01:00
Cedric 53a262ddb9 Never had a stupid bug dont look 2025-01-06 00:28:36 +01:00
Cedric f26f365b3c +Data Structure Changes
+Api Functionality
2025-01-05 01:30:28 +01:00
Cedric b3d5b5ad11 Bugfix, support for Expense without AppUser id 2024-12-31 01:14:28 +01:00
Cedric 0ee56e4e52 Fixed bug in finding ExpenseLists 2024-12-29 00:47:10 +01:00
Cedric 4df0b36f45 Sharing Lists logic 2024-12-28 01:35:50 +01:00
Cedric e20be63e5e Oauth setup 2024-12-25 01:04:05 +01:00
Cedric aa4ed91b9d expense List logic 2024-12-24 23:04:35 +01:00
Cedric a3a89abc34 user endpoints working 2024-12-23 11:44:02 +01:00
Cedric aec991374f db connected 2024-12-22 23:53:36 +01:00
Cedric c902377424 first commit 2024-12-22 22:32:48 +01:00