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

Logowanie do aplikacji

Object Storage Arubacloud
0 głosów
248 wizyt
pytanie zadane 8 stycznia 2023 w Java przez mm Użytkownik (890 p.)

Hej,

Piszę aplikację, w której fronend jest pisany w Angularze a backend w Spring Boot, chcę się zalogować do mojej aplikacji, ale ta metoda, którą napisałam nie działa. Poniżej wrzucam kod i jeśli mogłabym prosić o podpowiedź co jest nie tak.

Kod w SpringBoot

@GetMapping("/users")
    public ResponseEntity<?> userLogin(@RequestBody User userData){
        User user= userRepository.findByLogin(userData.getLogin());
        if(user.getPassword().equals(userData.getPassword()))
            return ResponseEntity.ok(user);

        return (ResponseEntity<?>) ResponseEntity.internalServerError();
    }

Kod w Angularze

loginUser(user: User):Observable<Object>{
    console.log(user)
  return this.http.get(`${this.Url},user`);

  }

 

1 odpowiedź

+2 głosów
odpowiedź 8 stycznia 2023 przez Wiciorny Ekspert (269,710 p.)
Generalnie nie wiem  dlaczego używasz GET- do logowania kogoś...
W tym celu wykorzystaj POST, jakieś błędy? @PostMapping i dodatkowo @
Nie widzę samej kontroli błędów, przez co nie wiesz  z jakim obiektem tak naprawde masz doczynienia, czy w debuerze wyłapywany jest REQUEST? Jeśli nie to, albo ścieżka się nie zgadza, albo  błąd jest w danych.
Jak wygląda ten ${this.Url} ? Pytam, gdyż oczekujesz mapowanie na /users, a ten url powinien być raczej tylko domeną.

Jeszcze czy nie masz @RequestMappingu ustawionego na kontrolerze wskazującego na 1 węzeł endpointu ?

Jeszcze zgodność typów widzę przesyłaśz Observable<Object> jako json, to przy okazji miej na uwadze warto by zrobić model w angolarze User...
komentarz 8 stycznia 2023 przez mm Użytkownik (890 p.)
W tej klasie mam jeszcze jedną funkcję, która służy do rejestracji użytkownika i jak dodaję kolejną funkcję z Post Mapping dostaję następujący błąd i dodałam Request Mapping

Caused by: java.lang.IllegalStateException: Ambiguous mapping. Cannot map 'userService' method
pl.serwer.UserService#userLogin(User)
to {POST [/users]}: There is already 'userService' bean method
pl.serwer.UserService#userAdd(User) mapped.

 ${this.Url} wygląda następująco http://localhost:8080/users
komentarz 8 stycznia 2023 przez Wiciorny Ekspert (269,710 p.)
edycja 8 stycznia 2023 przez Wiciorny

teraz mówi Ci o tym, że masz dwie takie same metody (na takim samym endpoincie http://localhost:8080/users tego samego rodzaju POST, bo tak być nie może ), zmień w takim razie endpoint metody addUser np dodając
@PosttMapping("/user") szczegolnie ze dodajesz uzytkownika  i niestety metoda oprócz tej samej metody http  i tego samego fragmentu zasobu mapowania posiada ten sam argument.   
http://localhost:8080/user/

Nie wiem jaki masz poziom języka angielskiego, ale bez tego będzie Ci cięzko. Caused by: java.lang.IllegalStateException: Ambiguous mapping
Wyraźnie masz napisane i możesz nawet skorzystać z google, debugej i informacje o błędach własnie po to są, żebyś była wstanie naprawiać problemy.

OSTATNIA sprawa, dlaczego przesyłasz 

this.http.get.(`${this.Url},user`); // jako jeden string?
// zauważ że całość objełaś jako 1 argument i to powoduje błąd 
powinnaś przesłać 
 return this.http.post.(`${this.Url}`, user);  
// uwaga na format user.. 

https://angular.io/api/common/http/HttpClient#post
Spójrz proszę na argumenty. 
 

post(url: string, body: any, options: { headers?: HttpHeaders | { [header: string]: 

Może być potrzeba dodania opcji, szczególnie jeśli nie posyłasz zgodności modelu User
 

const httpOptions = {
headers: new HttpHeaders({
 'Content-Type': 'application/json'
  })
}

i dodania opcji jako 3 parametr do funkcji 

komentarz 8 stycznia 2023 przez mm Użytkownik (890 p.)
Teraz działa. Bardzo dziękuję za pomoc :)
komentarz 8 stycznia 2023 przez Wiciorny Ekspert (269,710 p.)
bardzo prosze, jakby były dalej pytania w tym zakresie to nie ma problemu

Podobne pytania

0 głosów
1 odpowiedź 210 wizyt
pytanie zadane 13 maja 2023 w Java przez mm Użytkownik (890 p.)
0 głosów
1 odpowiedź 143 wizyt
pytanie zadane 16 kwietnia 2023 w Java przez mm Użytkownik (890 p.)
0 głosów
0 odpowiedzi 79 wizyt

92,551 zapytań

141,393 odpowiedzi

319,523 komentarzy

61,936 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...