REST-API absichern mit JWTs und Spring Security - Java und Spring Boot Tutorial Deutsch

preview_player
Показать описание
In diesem Video sichern wir unseren Webservice aus der ersten Folge ab, damit nur authentifizierte Benutzer auf unseren Service zugreifen können.

Repository:

Blogartikel:

Verwendete Musik:
▸ Epidemicsound
Рекомендации по теме
Комментарии
Автор

Ist die benutzte JWT-Lib nicht etwas veraltet und mit möglicher Gefahren verbunden?

TheBlockMonsterLp
Автор

Super Video, genau richtig für Beginner, die sich vorher noch gar nicht mit Authentifizierung auseinandergesetzt haben und einen Startpunkt suchen.

sheldoriassoso
Автор

Ich habe gute Javakenntnisse. Bisher habe ich mir meine MySQL Queries alle selbst zusammengebastelt... Was ja auch funktioniert. Nun bin ich auf OpenAPI gestoßen und habe auch schonmal was von Hibernate gehört... Dass das alles SO EINFACH geht, habe ich nicht erwartet ;) Es ist echt bemerkenswert, was alles geht und vor allem, dass man sich auf das eigentliche Projekt konzentrieren kann... Die fertige API dann noch in einem Docker Container und los gehts ;) Danke für das gute Tutorial... Ich werde mir doch mal einen Kurs mit Spring Boot zulegen, wenn sie wieder im Sale sind...

toniweber
Автор

Hi. Danke für das tolle Tutorial. Man findet ja selten jemanden auf deutsch :) Find ich klasse mach weiter so! <3
Eine Frage. Du benutzt so ein Programm namens Insomnia. Das ist sowas wie Postman neh? Kann das irgendwas mehr? besser? ich kenne das leider garnicht und habe bisher immer nur mit Postman gearbeitet.

Chrizzonator
Автор

Hi, vielen Dank für das super Video! Das ist wirklich sehr verständlich und nachvollziehbar! Du gibst ca. bei Minute 9 an, dass die Ablaufzeit realitätsfern ist. Was wäre denn aus deiner Sicht eine sinnvolle Zeit für den Ablauf des Tokens? Gruß Daniel

Edit: Ich würde sagen der WebSecurityConfigurerAdapter ist ebenfalls veraltet.

DKRSpeedline
Автор

Jay-Wieh-Tay ... genau... Heartly luckwish, your languageknowledge is the yellow from the egg

FrissOderLassEs
Автор

Welchen Hintergrund hat die Nutzung eines extra Objekts als @RequestBody (hier AuthRequest), anstatt direkt nach zwei Strings (email, password) zu fragen, wie dies beispielsweise in Springs eigenem Tutorial der Fall ist? Die Konsequenz wäre ja, für jede Anfragekombination, wenn eine neue Ressource angelegt wird, ein eigenes Objekt wie AuthRequest zu schreiben, oder?
Die Nutzung von ResponseEntity vertehe ich - hier scheint mir der Vorteil einer einfacheren Arbeit mit JSON sehr direkt offensichtlich.

DesertCookie
Автор

Hier ein interessanter Post, warum es vermieeden werden sollte @Data für Entities zu verwenden.
TLDR:
JPA Specification sagt du brauchst ein no-argument constructor, @Data erzeugt aber nur einen @RequiredArgsConstructor
laden alle felder und können versehentlich lazy attributes nachladen. Sprich ein @OneToMany kann alle Entitäten aus der DB nachladen.
Entities sind mutable, da selbst die ID oft erst nach dem erstellen der entity gesetzt wird (von DB). Dadurch existieren u.U. keine verlässlichen Felder zur Berechnung eines Hashes

Ansonsten gutes Tutorial 👍

thorbenklyn
Автор

Beim Verfolgen dieses Tutorials habe ich einen Knoten reinbekommen. Ich bin bisher davon ausgegangen, dass man beim Erstellen des JWT Tokens zunächst den Nutzer mit seinem Username und Password authentifiziert, den Token erstellt, welcher nun als Ersatz für die Datenbank genutzt werden kann. Wenn ich also einen Token bekomme, diesen erfolgreich parse, so würde ich davon ausgehen, dass der Username im Token legitim ist und ich die in den Claims kodierten Authorities so verwenden kann. Warum hast du hier 18:38 Zeile 31 die Datenbank bemüht? Wäre das nicht redundant?

Lst_HuMn
Автор

Diese JWT Tutorials gehen alle immer einen Schritt zu kurz. Bei einem Microservice ist das alles perfekt, aber wie verhält es sich, sobald man ein Mix aus mehreren Microservices hat. Muss ich diesen Code in jeden Service einbauen oder was wäre die bessere Lösung für eine Enterprise Application?

In meinen Augen, sollte das API Gateway eigentlich diese Prüfung machen und nur valide JWTs weiterleiten, aber wie verhält es sich dann mit Private/Public Keys für das Secret, also z.B. RSA? Und diese müssen natürlich auch rotieren. Dafür gibt es im JWT Header ein kid (KeyID) Feld, welches die Version sein könnte. Hier wäre ein etwas ausführlicheres Tutorial wirklich super.

mars
Автор

Bei 11:00 kopierst du die Exceptions für den Try-Catch Block rein. Wie hast du das gemacht?

dbutihk