Mam 2 oddzielnie serwery na backend (Spring + Spring security) oraz frontend(AngularJS). Problem mam przy wysyłaniu danych metodą POST.
Mianowicie gdy próbuje przesłać dane na backend dostaję wiadomośc od Spring
"HTTP Status 403 - Expected CSRF token not found. Has your session expired?" odpowiedź html
Oraz błąd 403 Forbiden
Zablokowano żądanie do zasobu innego pochodzenia: zasady „Same Origin Policy” nie pozwalają wczytywać zdalnych zasobów z „http://localhost:8080/registerAccount”. (brakujący nagłówek CORS „Access-Control-Allow-Origin”) ->konsola Firefox
Wczoraj cały dzień siedziałem i nie mogę zrozumieć gdzie mam błąd. W ciasteczkach XSFR-TOKEN się znajduje i wysyłany jest normalnie. Jak widać w kodzie poniżej Cors też jest skonfigurowany by miał dostępne te nagłówki.
Myślałem dodać ten nagłówek w angularze przy wysyłaniu metodą post, tylko nie do końca wiem jak to zrobić
@edzio94: Możesz sobie zrobić lokalne proxy do tych serwerów na jakieś domeny jako workaround. Normalnie też się to chyba da skonfigurować, ale jest dużo j-----a i nie pamiętam jak dokładnie ;)
@szczepqs:workaround mi nie podchodzi ;) Na necie też coś ciężko znaleźć z normalną odpowiedzią bo już próbowałem wszystkiego. Moge też csfr wyłączyć, lecz nie wiem czy to dobry pomysł.
Nie wiem czy kwestią tego nie jest to, że pierwszy raz z serwerem backend łącze się dopiero przy wysłaniu posta i tu może być problem z ciastkami, że Spring może nie załączył ciastka do klienta przed wysłaniem. Spróbuje na początek załadować
Zablokowano żądanie do zasobu innego pochodzenia: zasady „Same Origin Policy” nie pozwalają wczytywać zdalnych zasobów z „http://localhost:8080/registerAccount”
@edzio94: Same origin policy powinno być ustawiene z pliku konfiguracyjnego. Na localhoście masz taki z adresem na localhost:8080 i hulaj dusza.
A niestety, masz zahardcode'owane na jakąś dziwną wartośćc:
@szczepqs: Udało sie. Wytłumaczenie poniżej. Ale możesz podesłać tego konfiga bo jestem w sumie ciekaw. @Ginden: ta operacja jest oznaką mojej straconej nadziei i robienia czegokolwiek by to zadziałało :p @cjkas: wołam, może jesteś ciekaw
Udało się w końcu. Nie wina konfiguracji springa, nie wina CORSa tylko Angulara(a dokładniej niedoinformowanie)
Testowałem metodą taką, że najpierw wysyłam geta na zwykłe zapytanie na server by otrzymać cookies od localhost:8080
Mam 2 oddzielnie serwery na backend (Spring + Spring security) oraz frontend(AngularJS). Problem mam przy wysyłaniu danych metodą POST.
Mianowicie gdy próbuje przesłać dane na backend dostaję wiadomośc od Spring
"HTTP Status 403 - Expected CSRF token not found. Has your session expired?" odpowiedź html
Oraz błąd 403 Forbiden
Zablokowano żądanie do zasobu innego pochodzenia: zasady „Same Origin Policy” nie pozwalają wczytywać zdalnych zasobów z „http://localhost:8080/registerAccount”. (brakujący nagłówek CORS „Access-Control-Allow-Origin”) ->konsola Firefox
Wczoraj cały dzień siedziałem i nie mogę zrozumieć gdzie mam błąd. W ciasteczkach XSFR-TOKEN się znajduje i wysyłany jest normalnie. Jak widać w kodzie poniżej Cors też jest skonfigurowany by miał dostępne te nagłówki.
Myślałem dodać ten nagłówek w angularze przy wysyłaniu metodą post, tylko nie do końca wiem jak to zrobić
Także pomocy ( ͡° ͜ʖ ͡°)
CSRFHEADER
CORSFILTER
AppConfig
SecurityConfig
Nie wiem czy kwestią tego nie jest to, że pierwszy raz z serwerem backend łącze się dopiero przy wysłaniu posta i tu może być problem z ciastkami, że Spring może nie załączył ciastka do klienta przed wysłaniem. Spróbuje na początek załadować
Wydaje mi się że mam to skonfigurowane bez workaroundu na prywatnym kompie, jak wrócę wieczorem do domu, to podrzucę :P
@edzio94: Same origin policy powinno być ustawiene z pliku konfiguracyjnego. Na localhoście masz taki z adresem na
localhost:8080i hulaj dusza.A niestety, masz zahardcode'owane na jakąś dziwną wartośćc:
Która nie ma sensu. :P
Udało się w końcu. Nie wina konfiguracji springa, nie wina CORSa tylko Angulara(a dokładniej niedoinformowanie)
Testowałem metodą taką, że najpierw wysyłam geta na zwykłe zapytanie na server by otrzymać cookies od localhost:8080