Spring Security mit Stormpath

Frühlingssicherheit mit Stormpath

1. Überblick

Stormpath hat eine solide Unterstützung für Spring Boot und Spring Security entwickelt, um die Integration in ihre Infrastruktur und Dienste recht einfach zu gestalten.

In diesem Artikel werfen wir einen Blick aufa minimalistic setup and integration of Stormpath with Spring Security.

2. Stormpath einrichten

Bevor wir Stormpath wirklich integrieren können, müssen wir ein Zugriffstoken in der Stormpath-Cloud erstellen. Dafür müssen wirsign up auf ihrer Website haben. Please remember that for development purpose we’ll need to sign up as a developer - Dies gibt uns 10000 API-Aufrufe pro Monat bei Verwendung des kostenlosen Modus.

Wenn wir bereits ein aktives Stormpath-Konto haben, können wir dieses und direktlogin verwenden.

Jetzt müssen wir die API-Schlüssel erstellen. Wenn Sie inDevelopers Tools auf den LinkManage API Keys” klicken, wird eine Schaltfläche mit dem Namen "*Create API Key*“" angezeigt.

Wir müssen auf diese Schaltfläche klicken, um den API-Schlüssel zu generieren. Wenn Sie auf klicken, werden Sie aufgefordert, eine Eigenschaftendatei mit den API-Schlüsseldetails herunterzuladen. Der Inhalt sieht folgendermaßen aus:

apiKey.id = xxxxxxxxxxx
apiKey.secret = xxxxxxxxxxxx

Wir müssen diese Details sehr sorgfältig speichern, da diese Daten nicht erneut vom Server abgerufen werden können.

3. Erstellen der Anwendung

3.1. Maven-Abhängigkeiten

Um die Stormpath-API verwenden zu können, müssen Sie das Java-SDK verwenden. Dazu müssen wir die folgende Abhängigkeit inpom.xml integrieren:


    com.stormpath.spring
    stormpath-default-spring-boot-starter
    1.5.4

Die neueste Version vonstormpath-default-spring-boot-starter finden Sie inCentral Maven Repository.

3.2. Spring-Sicherheitskonfiguration

Einer der Vorteile der Verwendung von Stormpath besteht darin, dass wir nicht viel Boilerplate-Code hinzufügen müssen, um Spring Security zu konfigurieren. Die folgenden Codezeilen reichen aus, um die Anwendung vollständig zu konfigurieren:

@Configuration
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.apply(stormpath());
    }
}

stormpath() ist eine statische Methode, die für eine einfache Integration in Spring Security ausreicht.

Noch interessanter ist, dass wir keine zusätzlichen HTML-Seiten erstellen müssen, um Login, Anmeldung usw. zu gestalten. Stormpath generiert diese Seiten. Je nach Bedarf können wir jedoch benutzerdefinierte Seiten erstellen und die Funktionen von Stormpath integrieren.

3.3. Application.properties

Wir sind fast fertig mit der Erstellung dieser Bare-Bones-Anwendung. Wir müssen nur die Details der API-Schlüssel hinzufügen, die wir zuvor in der Dateiapplication.propertieserstellt haben:

stormpath.client.apiKey.id = // your api id
stormpath.client.apiKey.secret = // your api secret

Gemäß den Stormpath-Richtlinien ist es immer eine bewährte Methode, vertrauliche Daten in die JVM-Umgebungsvariablen einzufügen, anstatt sie inapplication.propertieszu verwenden.

Wir können sie als JVM-Parameter deklarieren:

-Dstormpath.client.apiKey.id=[api_id] -Dstormpath.client.apiKey.secret=[api_secret]

Jetzt können wir die Anwendung starten und die Ergebnisse anzeigen. Wir können die folgenden URLs überprüfen, um die Funktionen von Stormpath zu testen:

  • /login - Anmeldeseite

  • /register - Registrierungsseite

  • /forgot - Passwortseite vergessen

3.4. Andere Optionen

Es gibt auch eine interessante Option, um auf der Anmeldeseite den LinkForgot Passwordim Anmeldefeld zu überprüfen. Wenn Sie auf diesen Link klicken, werden wir zur Seite/forgotweitergeleitet, auf der wir unsere E-Mail-Adresse angeben können, die wir zur Anmeldung erstellt haben. Dies löst eine automatische E-Mail mit dem Link zum Zurücksetzen eines Passworts aus.

Wir müssen jedoch folgende Konfiguration im Stormpath Admin Panel vornehmen, um dies zu konfigurieren:

  • Klicken Sie oben auf der Seite auf den LinkDirectories. Es sollte alle Verzeichnisse anzeigen, die mit diesem Konto erstellt wurden. Standardmäßig erstellt Stormpath nach der Anmeldung automatisch ein Verzeichnis mit dem NamenStormpath Administrator. Sie können jedoch andere Verzeichnisse erstellen und diese verwenden.

  • Klicken Sie im linken Bereich auf den LinkWorkflows & Emails, um eine Option zum Zurücksetzen des Kennworts anzuzeigen. Standardmäßig ist es deaktiviert. Wir müssen auf die SchaltflächeEnabled klicken, um sie zu verwenden.

  • InLink Base URL müssen wir die URL unserer Anwendung angeben. Diese URL wird an die E-Mail zum Zurücksetzen des Kennworts angehängt.

4. Fazit

In diesem kurzen Artikel haben wir gelernt, wie Spring Security einfach in Stormpath integriert werden kann.

Es gibt viele andere Konfigurationen wie E-Mail-Bestätigung usw., die überStormpath Admin Console konfiguriert werden können. Mit diesen können wir sehr schnell eine gesicherte Anwendung erstellen.

Und wie immer finden Sie den vollständigen Quellcodeon GitHub.