From cc96c06c84dabd5609bd05828cf63e46b49aeadc Mon Sep 17 00:00:00 2001 From: Przemek Zatorski Date: Fri, 4 Sep 2026 01:37:35 +0200 Subject: [PATCH] Napraw logowanie z domeny produkcyjnej i odpornosc stacku na restart Logowanie z https://polskalokalnie.pl konczylo sie bledem 403, a nie 401 - zadanie w ogole nie docieralo do logiki uwierzytelniania. Nginx terminuje TLS i przekazuje ruch do backendu po http, wiec Spring widzi schemat http, podczas gdy przegladarka przysyla Origin z https. Schematy sie roznia, wiec zadanie jest traktowane jako cross-origin i sprawdzane wzgledem listy dozwolonych originow, na ktorej byly wylacznie adresy lokalne i LAN. Frontend pokazywal przy tym generyczny komunikat, bo odpowiedz CORS nie jest JSON-em z pole "message". Dodanie domeny produkcyjnej do listy przywraca poprawne zachowanie: zle haslo zwraca 401 z czytelnym komunikatem, poprawne 200. Poza tym: - name: polskalokalnie w obu plikach compose. Bez tego Compose wyprowadza nazwe projektu z nazwy katalogu, a na serwerze kazda z trzech aplikacji siedzi w katalogu "app" - komenda bez -p wchodzila w stack innej aplikacji i podmieniala w nim serwis backend. - restart: unless-stopped na serwisach produkcyjnych. Kontenery polskalokalnie mialy polityke "no" i jako jedyne na serwerze nie wstawaly po reboocie. W pliku deweloperskim swiadomie tego nie ma - lokalnie kontenery nie powinny startowac same przy kazdym uruchomieniu Dockera. Co-Authored-By: Claude Opus 5 (1M context) --- .../src/main/java/pl/polskalokalnie/config/WebConfig.java | 4 +++- docker-compose.prod.yml | 8 ++++++++ docker-compose.yml | 5 +++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/backend/src/main/java/pl/polskalokalnie/config/WebConfig.java b/backend/src/main/java/pl/polskalokalnie/config/WebConfig.java index 48a09c6..64727c3 100644 --- a/backend/src/main/java/pl/polskalokalnie/config/WebConfig.java +++ b/backend/src/main/java/pl/polskalokalnie/config/WebConfig.java @@ -31,7 +31,9 @@ public class WebConfig implements WebMvcConfigurer { "http://172.29.*.*:[*]", "http://172.30.*.*:[*]", "http://172.31.*.*:[*]", - "http://*.local:[*]") + "http://*.local:[*]", + "https://polskalokalnie.pl", + "https://www.polskalokalnie.pl") .allowedMethods("GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS") .allowedHeaders("*"); } diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index f407405..bc533c6 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -1,5 +1,11 @@ +# Nazwa projektu na sztywno: bez tego Compose bierze ja z nazwy katalogu ("app"), +# a na serwerze kazda aplikacja siedzi w katalogu o tej samej nazwie - komenda bez -p +# trafialaby wtedy w stack innej aplikacji. +name: polskalokalnie + services: db: + restart: unless-stopped image: postgres:16-alpine environment: POSTGRES_DB: ${POSTGRES_DB:-polskalokalnie} @@ -14,6 +20,7 @@ services: retries: 5 backend: + restart: unless-stopped build: context: ./backend environment: @@ -37,6 +44,7 @@ services: condition: service_healthy web: + restart: unless-stopped build: context: . dockerfile: nginx/Dockerfile diff --git a/docker-compose.yml b/docker-compose.yml index 28dd919..2cd6ba3 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,3 +1,8 @@ +# Nazwa projektu na sztywno: bez tego Compose bierze ja z nazwy katalogu ("app"), +# a na serwerze kazda aplikacja siedzi w katalogu o tej samej nazwie - komenda bez -p +# trafialaby wtedy w stack innej aplikacji. +name: polskalokalnie + services: db: image: postgres:16-alpine