Spring Security rollenbasierte Authentifizierungs- und Autorisierungsimplementierung mit Spring Boot 3.0
Hallo Lernende, hier erfahren Sie mehr über die Spring Security-Implementierung mit Spring Boot. Spring Security bietet Authentifizierung, Autorisierung und Schutz vor gängigen Angriffen.
Authentifizierung – Bei der Authentifizierung überprüfen wir die Identität des Benutzers, der versucht, auf eine bestimmte Ressource zuzugreifen. Sobald die Authentifizierung durchgeführt ist, kennen wir die Identität und können die Autorisierung durchführen.
Autorisierung - Autorisierung bedeutet, die Erlaubnis zum Zugriff auf bestimmte Ressourcen/URLs zu erteilen.
Schritte zur Implementierung von Spring Security
Schritt 1: Spring Security-Abhängigkeit in POM.XML hinzufügen
Schritt 2: Erstellen Sie eine Konfigurationsklasse, fügen Sie Authentifizierungs- und Autorisierungsmethoden hinzu.
@EnableWebSecurity bietet unserer Anwendung eine Standardsicherheitskonfiguration. Die Standardsicherheit aktiviert sowohl HTTP-Sicherheitsfilter als auch die Sicherheitsfilterkette und wendet die Basisauthentifizierung auf unsere Endpunkte an.
@Configuration weist Spring Boot an, die Klasse nach Bean-Definitionen zu durchsuchen und sie im Anwendungskontext zu registrieren.
Die Methode authenticateProvider() wird verwendet, um alle Benutzerdetails wie Benutzername, Passwort, Rollen zu speichern.Spring Security enthält die Klasse DaoAuthenticationProvider, die userDetailsService und passwordEncoder enthält.passwordEncoder() wird verwendet, um das Passwort zu verschlüsseln, und das verschlüsselte Passwort wird in der DB gespeichert.
Die Methode SecutityFilterChain() soll hier die Ressourcen autorisieren
.requestMatchers("/products/welcome","/products/new").permitAll() soll allen Benutzern Zugriff gewähren, jeder Benutzer kann auf diese beiden URLs zugreifen.
requestMatchers(“/products/**“).authenticated() soll authentifizierten Benutzern Zugriff gewähren.
Schritt 3: Implementieren Sie die rollenbasierte Autorisierung
@PreAuthorizeAnnotation wird verwendet, um einen Ausdruck anzugeben, der ausgewertet wird, bevor die Methode ausgeführt wird. Wenn der Ausdruck als wahr ausgewertet wird, wird die Methode ausgeführt, andernfalls wird eine AccessDeniedException geworfen.
Die getAllProducts()Methode kann nur von Benutzern mit der Rolle ausgeführt werden ROLE_USER, während die getProductById()Methode von Benutzern mit der Rolle ausgeführt werden kann ROLE_ADMIN.
Testen der Implementierung
Beispielcode hinzugefügt, um die Implementierung zu testen.
Nach Angabe der Benutzeranmeldeinformationen kann der Benutzer auf den Benutzerendpunkt zugreifen
Wenn Benutzer versuchen, mit Benutzeranmeldeinformationen auf den Admin-Endpunkt zuzugreifen, wird eine Fehlerseite angezeigt
Hinweis: Wenn Sie den funktionierenden Github-Code dieser Implementierung wünschen, folgen Sie mir bitte und kommentieren Sie Ihre E-Mail-ID. Ich werde den Quellcode-Link an Ihre E-Mail senden.
Teil 2: Spring Security-Authentifizierung und -Autorisierung mit JWT
Siehe Links für andere Spring Boot-Konzepte:
Frühlings-AOP-Tutorial
Tutorial zur Spring Boot-Protokollierung
Zentralisierte Konfiguration in Spring Boot
Am häufigsten verwendete Hibernate-Anmerkungen

![Was ist überhaupt eine verknüpfte Liste? [Teil 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































