From d7c3cbbc698f26fe7456cb9266b5ff4672cfa521 Mon Sep 17 00:00:00 2001 From: mvvasilev Date: Wed, 7 Feb 2024 14:10:53 +0200 Subject: [PATCH] Add Kafka, zookeeper. Add nginx. --- .docker/nginx/default.conf.template | 59 +++++++++ .idea/gradle.xml | 1 + docker-compose.yml | 125 ++++++++++-------- pefi-common/build.gradle | 2 + .../CommonControllerConfiguration.java | 12 ++ .../CommonSecurityConfiguration.java | 46 +++---- .../dev/mvvasilev/finances/PefiCoreAPI.java | 9 +- .../configuration/KafkaConfiguration.java | 12 +- .../finances/controllers/EnumsController.java | 6 + .../controllers/StatisticsController.java | 5 - .../TransactionsKafkaListener.java | 2 +- .../src/main/resources/application.properties | 12 +- .../categories/CategorizationRulesEditor.jsx | 4 +- .../components/widgets/WidgetEditModal.jsx | 4 +- pefi-frontend/src/utils.js | 49 +++++-- pefi-login-service/.env.example | 4 + pefi-login-service/Dockerfile | 7 + pefi-login-service/build.gradle | 24 ++++ pefi-login-service/settings.gradle | 1 + .../java/dev/mvvasilev/PefiLoginService.java | 11 ++ .../configuration/SecurityConfiguration.java | 58 ++++++++ .../controller/RefreshController.java | 55 ++++++++ .../main/java/dev/mvvasilev/dto/TokenDTO.java | 17 +++ .../exception/PefiLoginServiceException.java | 7 + .../service/TokenRefreshService.java | 51 +++++++ .../java/dev/mvvasilev/utils/CookieUtils.java | 27 ++++ .../src/main/resources/application.properties | 12 ++ .../statements/PefiStatementsAPI.java | 9 +- .../src/main/resources/application.properties | 12 +- pefi-widgets-api/.env.example | 9 ++ pefi-widgets-api/build.gradle | 2 + .../dev/mvvasilev/widgets/PefiWidgetsAPI.java | 9 +- .../configurations/SecurityConfiguration.java | 2 + .../src/main/resources/application.properties | 12 +- settings.gradle | 1 + 35 files changed, 536 insertions(+), 142 deletions(-) create mode 100644 .docker/nginx/default.conf.template create mode 100644 pefi-login-service/.env.example create mode 100644 pefi-login-service/Dockerfile create mode 100644 pefi-login-service/build.gradle create mode 100644 pefi-login-service/settings.gradle create mode 100644 pefi-login-service/src/main/java/dev/mvvasilev/PefiLoginService.java create mode 100644 pefi-login-service/src/main/java/dev/mvvasilev/configuration/SecurityConfiguration.java create mode 100644 pefi-login-service/src/main/java/dev/mvvasilev/controller/RefreshController.java create mode 100644 pefi-login-service/src/main/java/dev/mvvasilev/dto/TokenDTO.java create mode 100644 pefi-login-service/src/main/java/dev/mvvasilev/exception/PefiLoginServiceException.java create mode 100644 pefi-login-service/src/main/java/dev/mvvasilev/service/TokenRefreshService.java create mode 100644 pefi-login-service/src/main/java/dev/mvvasilev/utils/CookieUtils.java create mode 100644 pefi-login-service/src/main/resources/application.properties create mode 100644 pefi-widgets-api/.env.example diff --git a/.docker/nginx/default.conf.template b/.docker/nginx/default.conf.template new file mode 100644 index 0000000..4387733 --- /dev/null +++ b/.docker/nginx/default.conf.template @@ -0,0 +1,59 @@ +server { + listen 80; + + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For &proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto &scheme; + proxy_set_header Host $http_host; + + proxy_redirect off; + + location / { + proxy_pass ${FRONTEND_URI}; + + location /login { + proxy_pass ${LOGIN_SERVICE_URI}; + } + + location /logout { + proxy_pass ${LOGIN_SERVICE_URI}; + } + + location /oauth2 { + proxy_pass ${LOGIN_SERVICE_URI}; + } + + location /refresh-token { + proxy_pass ${LOGIN_SERVICE_URI}; + } + } + + location /api { + rewrite ^/api/(.*) /$1 break; + + proxy_pass ${CORE_API_URI}; + + proxy_set_header Authorization "Bearer $cookie_pefi_token"; + proxy_pass_header Authorization; + + location /api/enums/widget-types { + rewrite ^/api/(.*) /$1 break; + proxy_pass ${WIDGETS_API_URI}; + } + + location /api/enums/supported-conversions { + rewrite ^/api/(.*) /$1 break; + proxy_pass ${STATEMENTS_API_URI}; + } + + location /api/widgets { + rewrite ^/api/(.*) /$1 break; + proxy_pass ${WIDGETS_API_URI}; + } + + location /api/statements { + rewrite ^/api/(.*) /$1 break; + proxy_pass ${STATEMENTS_API_URI}; + } + } +} \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 8e8716e..bdf3a64 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -14,6 +14,7 @@