• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Autentykacja Spring Security JWT problem z CORS

42 Warsaw Coding Academy
0 głosów
283 wizyt
pytanie zadane 27 czerwca 2020 w Java przez JuniorPL Użytkownik (770 p.)

Cześć, spotkałem się z dziwną sytuacją której nie mogę zrozumieć. Stworzyłem implementację JWT. W przypadku wykorzystania React i axiosa mogę dostać się do endpointu logowania podać poprawne dane i otrzymać token. Problem pojawia się w przypadku kiedy używam Angulara. Zapytanie trafia do aplikacji jest przetwarzane ale otrzymuję błąd w przeglądarce "CORS". Cały czas myślałem że CORS są związane wyłącznie z stroną serwerową, dobrze myślałem?

Część serwerowa:

 @Override
    protected void configure(HttpSecurity http) throws Exception { 
        http.cors().disable();
        http.csrf().disable()
                .authorizeRequests()
                .antMatchers(HttpMethod.POST, "/users/register").permitAll()
                .antMatchers(HttpMethod.POST, "/users/login").permitAll()
                .anyRequest()
                .permitAll()
                .and()
                .addFilter(getAuthenticationFilter())
                .addFilter(new JwtFilter(authenticationManager(), userDetailsService))
                .sessionManagement()
                .sessionCreationPolicy(SessionCreationPolicy.STATELESS);

    }
    
    public AuthenticationFilter getAuthenticationFilter() throws Exception {
        final AuthenticationFilter filter = new AuthenticationFilter(authenticationManager(),bCryptPasswordEncoder);
        filter.setFilterProcessesUrl("/users/login");
        return filter;
    }

Klient:

 executeJWTAuthenticationService(credentailDto: CredentailDto) {

    return this.http.post<any>(
      this.url+ 'users/login', 
        JSON.stringify(credentailDto)
    ).pipe(
      map(
        data => {
  
          return data;
        }
      )
    );
  }

Może ktoś podpowie gdzie popełniam błąd.

komentarz 27 czerwca 2020 przez Wiciorny Ekspert (280,970 p.)

ps: nie istnieje takie słowo w języku polskim, authentication- oznacza Uwierzytelnienie :D btw.

 

Uwierzytelnianie (ang. authentication, często niepoprawnie autentykacja[1][2]) – proces polegający na potwierdzeniu zadeklarowanej tożsamości podmiotu biorącego udział w procesie komunikacji[3]. Celem uwierzytelniania jest uzyskanie określonego poziomu pewności, że dany podmiot jest w rzeczywistości tym, za którego się podaje[4][5].

Na określenie tego procesu używa się również niezalecanych przez normatywistów terminów autentykacjaautentyfikacja[6][7], będących kalkami z języka angielskiego.

1 odpowiedź

0 głosów
odpowiedź 27 czerwca 2020 przez Wiciorny Ekspert (280,970 p.)

CORS jest związany od strony serwera, ale sam ANGULAR to nietylko client, wiesz "jeśli" 2 endpointy naruszają zasadę ORIGIN to będzie to dla angulara domyślnie problemem 

Musisz to  samo ustawić w opcjach konfiguracji angulara, gdyż on korzysta z własnej https://www.techiediaries.com/fix-cors-with-angular-cli-proxy-configuration/
Jest taka funkcja w configuracji jak ENABLE CORS ... bodajrze i ją trzeba zaimplementować w Angularze  w webappconfig 
Też nie bardzo rozumiem dlaczego rezgynujesz z CORS, bardziej na na tym zależy aby aktywować to, aby problem nie występował z ORIGIN w przypadku tak prostego api 
http.cors().disable();
jeśli zapytania polecą od  klienta to po za aróżnicą w porcie jako origin, zapytanie localhost:4040/app  będzie tym samym jeśli po localhost4040:/app/tap pojawi się taki endpoint 

komentarz 27 czerwca 2020 przez JuniorPL Użytkownik (770 p.)
Ale dlaczego inne zapytania wysyłane z Angulara przechodzą bez błędów? Wcześniej nic nie konfigurowałem po stronie klienta.

Podobne pytania

0 głosów
0 odpowiedzi 1,160 wizyt
pytanie zadane 28 listopada 2018 w Java przez Morthan Początkujący (410 p.)
0 głosów
1 odpowiedź 209 wizyt
pytanie zadane 30 sierpnia 2020 w Java przez Szyszka Gaduła (3,510 p.)
0 głosów
1 odpowiedź 175 wizyt
pytanie zadane 27 sierpnia 2020 w Java przez Szyszka Gaduła (3,510 p.)

93,395 zapytań

142,389 odpowiedzi

322,568 komentarzy

62,753 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...