OAuth2 Authentifizierung
Die Authentifizierung mit OAuth2 sollte mittels "password" erfolgen.
Es muss einmal ein Login mittels Benutzername und Password stattfinden. Ist der Benutzer neu (Benutzer anlegen), ist der Benutzer bereits vorhanden (Zugangsdaten validieren). Danach antwortet der Server mit einem Access Token. Der User kann dann mittels dem Access Token alle Anfragen stellen, die eine Berechtigung erfordern.
Die Session-Datenbank kann erstmal in einer InMemoryDatenbank erfolgen. Später sollte ein Redis-Server aufgesetzt werden.
Login:
curl -X POST http://localhost:8080/auth/signin -H "Content-Type:application/json" -d "{\"username\":\"user\", \"password\":\"password\"}"
{
"username" : "user",
"token" : "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1c2VyIiwicm9sZXMiOlsiUk9MRV9VU0VSIl0sImlhdCI6MTUyNDY0OTI4OSwiZXhwIjoxNTI0NjUyODg5fQ.Lj1w6vPJNdJbcY6cAhO3DbkgCAqpG7lzztzUeKMyNyE"
}
Übersicht, welcher User angemeldet ist und welche Rechte er hat:
curl -X GET http://localhost:8080/me -H "Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1c2VyIiwicm9sZXMiOlsiUk9MRV9VU0VSIl0sImlhdCI6MTUyNDY0OTI4OSwiZXhwIjoxNTI0NjUyODg5fQ.Lj1w6vPJNdJbcY6cAhO3DbkgCAqpG7lzztzUeKMyNyE"
{
"roles" : [ "ROLE_USER" ],
"username" : "user"
}
Quellen: https://www.baeldung.com/rest-api-spring-oauth2-angular https://medium.com/@hantsy/protect-rest-apis-with-spring-security-and-jwt-5fbc90305cc5 https://dev.to/keysh/spring-security-with-jwt-3j76