Spring Security ist ein leistungsfähiges Tool, das die Authentifizierung und Autorisierung in Spring-Framework-basierten Anwendungen ermöglicht. Es ermöglicht Ihnen, sichere Webanwendungen zu erstellen und vertrauliche Informationen von Benutzern und Organisationen zu schützen.
Ein wichtiger Aspekt der Sicherheit ist die Möglichkeit, sich richtig abzumelden. Die Entwickler von Spring Security haben eine einfache und zuverlässige Methode zur Implementierung dieser Funktion bereitgestellt.
Um sich in Spring Security abzumelden, können Sie die Methode logout() verwenden. Diese Methode erkennt eine Abmeldeanforderung mithilfe eines bestimmten URL-Pfads und bereitet die Sitzung zum Beenden der Benutzersitzung vor. Außerdem können Sie eine Reihe von Parametern konfigurieren, z. B. die URL, an die der Benutzer nach erfolgreicher Abmeldung weitergeleitet wird.
Um die Abmeldung in Ihrer Webanwendung zu konfigurieren, müssen Sie der Spring Security-Konfigurationsdatei das folgende Codefragment hinzufügen:
@Configuration@EnableWebSecuritypublic class SecurityConfig extends WebSecurityConfigurerAdapter >
Wenn der Benutzer zur URL /logout navigiert, lädt das System die Methode logout() und führt alle erforderlichen Aktionen aus. Nach Beendigung der Sitzung wird der Benutzer normalerweise zur Anmeldeseite weitergeleitet, um sich erneut zu authentifizieren und sich mit einem anderen Konto anzumelden.
Jetzt wissen Sie, wie Sie sich in Spring Security mit logout() abmelden können. Denken Sie daran, auch andere Sicherheitsaspekte einzurichten, um sicherzustellen, dass Ihre Webanwendung vollständig geschützt ist.
Grundlegende Schritte zum Abmelden von Ihrem Konto in Spring Security
1. Aktivieren Sie die Abmeldeunterstützung in Ihrer Spring Security-Anwendung. Um dies zu tun, müssen Sie die Spring Security-Konfiguration konfigurieren, indem Sie die Konfiguration zum Beenden hinzufügen:
http.logout().logoutUrl("/logout").logoutSuccessUrl("/login").invalidateHttpSession(true).deleteCookies("JSESSIONID");
Im obigen Code definieren wir die Abmelde-URL ("/logout") und die URL, an die der Benutzer nach erfolgreicher Abmeldung weitergeleitet wird ("/login"). Wir weisen auch darauf hin, dass Sie die HTTP-Sitzung und den Cookie für die Sitzungs-ID löschen müssen.
2. Erstellen Sie einen Controller, um Abmeldeanforderungen zu bearbeiten:
@Controllerpublic class LogoutController <@RequestMapping("/logout")public String logout(HttpServletRequest request, HttpServletResponse response) return "redirect:/login?logout";>>
In diesem Controller verwenden wir die SecurityContextHolder-Methode.getContext().getAuthentication(), um Informationen zur Benutzerauthentifizierung abzurufen. Dann haben wir SecurityContextLogoutHandler() verwendet.logout(), um die Authentifizierung abzuschließen und die Sitzung des Benutzers zu bereinigen. Am Ende leiten wir den Benutzer auf die Anmeldeseite mit dem Parameter "?logout", mit dem eine erfolgreiche Abmeldungsmeldung angezeigt werden kann.
3. Erstellen Sie eine Ansicht für die Anmeldeseite mit der Meldung zum erfolgreichen Abmelden:
Вход Вход
Вы успешно вышли из системы.
In dieser Ansicht haben wir eine Bedingung mithilfe von JSTL-Tags hinzugefügt, die überprüft, ob der Parameter "logout" in der URL vorhanden ist. Wenn diese Option vorhanden ist, wird eine Meldung angezeigt, dass Sie sich erfolgreich abgemeldet haben. Das Anmeldeformular bleibt unverändert.
Jetzt kennen Sie die grundlegenden Schritte, um sich erfolgreich in Spring Security abzumelden. Beachten Sie, dass diese Schritte je nach Ihren Anforderungen und Anwendungseinstellungen variieren können.
Spring Security einrichten
1. Hinzufügen einer Abhängigkeit zum pom.xml
Um mit Spring Security zu arbeiten, müssen Sie der pom-Datei eine Abhängigkeit hinzufügen.xml Ihres Projekts:
2. Erstellen einer Konfigurationsdatei
Erstellen Sie eine Klasse, die eine Spring Security-Konfigurationsdatei sein soll. Um dies zu tun, kommentieren Sie die Klasse mit der @Configuration Annotation:
public class SecurityConfig extends WebSecurityConfigurerAdapter
protected void configure(HttpSecurity http) throws Exception
// regeln für den Ressourcenzugriff konfigurieren
3. Konfigurieren von Zugriffsregeln
Definieren Sie in der configure(HttpSecurity http) -Methode Regeln für den Zugriff auf verschiedene Ressourcen Ihrer Anwendung. Um beispielsweise nur authentifizierten Benutzern den Zugriff auf bestimmte Seiten zu ermöglichen, fügen Sie die folgende Konfiguration hinzu:
protected void configure(HttpSecurity http) throws Exception
Im obigen Beispiel sind alle URLs, die mit "/secured/" beginnen, nur für authentifizierte Benutzer verfügbar.
4. Erstellen von Benutzern
Um Benutzer zu authentifizieren, können Sie den integrierten Spring Security-Mechanismus verwenden oder einen benutzerdefinierten UserDetailsService erstellen. Um beispielsweise einen Benutzer mit dem Namen "admin" und dem Kennwort "password" zu erstellen, fügen Sie die folgende Konfiguration hinzu:
protected void configure(AuthenticationManagerBuilder auth) throws Exception
Im obigen Beispiel haben wir den Benutzer "admin" mit der Rolle "ADMIN" erstellt.
Nachdem Sie Spring Security eingerichtet haben, können Sie die Authentifizierungs- und Autorisierungsfunktionen in Ihrer Anwendung verwenden.
Eine Abmeldeseite erstellen
Um dem Benutzer die Möglichkeit zu geben, sich sicher von seinem Spring Security-Konto abzumelden, müssen Sie eine separate "Logout" -Seite erstellen. Wenn Sie diese Seite aufrufen, wird der Benutzer aufgefordert, die Abmeldung zu bestätigen.
Zunächst erstellen wir einen neuen Controller, in dem wir Abmeldeanfragen bearbeiten. Markieren Sie diesen Controller mit einer Anmerkung @Controller. Fügen Sie dann eine Methode hinzu, die die GET-Anforderungen für /logout verarbeitet:
@Controllerpublic class LogoutController <@GetMapping("/logout")public String showLogoutPage() >
Erstellen wir nun eine Logout-Ansichtsdatei.html, das unsere Abmeldeseite anzeigt. Fügen Sie dieser Datei den folgenden Code hinzu:
Выход из аккаунта Выход из аккаунта
Вы уверены, что хотите выйти из своего аккаунта?
Wenn der Benutzer nun zu /logout navigiert, wird eine Seite mit der Überschrift "Abmelden" und der Schaltfläche "Abmelden bestätigen" angezeigt, die eine Postanfrage an /logout sendet. Dadurch wird der Benutzer erfolgreich aus dem Konto abgezogen.
Daher ist das Erstellen einer Abmeldeseite in Spring Security ein wichtiger Schritt, um dem Benutzer eine bequeme und sichere Möglichkeit zu bieten, seine Sitzung zu beenden.
Abmeldung im Controller verarbeiten
Um sich mit Spring Security abmelden zu können, müssen Sie Ihrem Controller einen Abmeldeanforderungshandler hinzufügen. In diesem Handler können Sie die erforderlichen Schritte ausführen, um die aktuelle Sitzung des Benutzers zu beenden und ihn zur Abmeldeseite weiterzuleiten.
Im Folgenden finden Sie einen Beispielcode für den Controller, der sich abmeldet:
@Controllerpublic class LogoutController <@GetMapping("/logout")public String logout(HttpServletRequest request, HttpServletResponse response)/ Завершение текущей сессии пользователяAuthentication authentication = SecurityContextHolder.getContext().getAuthentication();if (authentication != null) // Перенаправление на страницу выходаreturn "redirect:/logout-page";>>
In diesem Beispiel verarbeitet die logout() -Methode die GET - Anforderung für den Pfad /logout . Innerhalb der Methode erhalten wir die aktuelle Benutzerauthentifizierung aus dem Spring Security-Sicherheitskontext. Wenn die Authentifizierung nicht null ist, erstellen wir ein SecurityContextLogoutHandler-Objekt und rufen seine logout() -Methode auf, um die aktuelle Benutzersitzung zu beenden.
Nach Abschluss der Sitzung werden wir zur Abmeldeseite weitergeleitet, die durch den Rückgabewert der /logout-page-Methode angegeben ist. Sie können diesen Pfad je nach Ihren Anforderungen durch Ihren eigenen ersetzen.
Wenn Sie nun auf den Pfad /logout zugreifen, wird der Benutzer sich von seinem Konto abmelden und zur Abmeldeseite weitergeleitet.
Überprüfen der Abmeldung
Nachdem Sie sich in Spring Security abgemeldet haben, ist es wichtig zu überprüfen, ob es ordnungsgemäß funktioniert. Dazu können Sie die folgenden Schritte ausführen:
1. Einloggen
Gehen Sie zur Anmeldeseite Ihrer App und geben Sie die richtigen Anmeldeinformationen (Login und Passwort) ein.
2. Überprüfen Sie die erfolgreiche Anmeldung
Stellen Sie sicher, dass Sie sich bei Ihrem Konto angemeldet haben, indem Sie sicherstellen, dass nur für autorisierte Benutzer verfügbare Informationen angezeigt werden, z. B. persönliche Informationen oder Funktionen, die erst nach der Anmeldung verfügbar sind.
3. Abmelden von Ihrem Konto
Suchen Sie nach Möglichkeit nach dem Link oder der Schaltfläche "Abmelden" oder "Abmelden", um die Abmeldeaktion anzuzeigen.
Klicken Sie auf diesen Link oder diese Schaltfläche, um sich abzumelden.
4. Erfolgreiche Abmeldung überprüfen
Stellen Sie nach dem Abmelden sicher, dass Sie nicht mehr autorisiert sind, indem Sie prüfen, ob keine persönlichen Informationen oder Funktionen verfügbar sind, die erst nach der Anmeldung verfügbar sind.
Hinweis: In einigen Fällen werden Sie nach der Abmeldung möglicherweise automatisch zur Anmeldeseite weitergeleitet. Stellen Sie in diesem Fall sicher, dass Sie nach dem Beenden auf die erwartete Seite gelangen.
Nachdem Sie diese Schritte ausgeführt haben, können Sie sicherstellen, dass die Abmeldung in Spring Security in Ihrer Anwendung ordnungsgemäß funktioniert.