Sécurité de printemps avec Stormpath

Sécurité de printemps avec Stormpath

1. Vue d'ensemble

Stormpath a développé un support solide pour Spring Boot et Spring Security - pour rendre l'intégration avec leur infrastructure et leurs services assez simple.

Dans cet article, nous allons jeter un œil àa minimalistic setup and integration of Stormpath with Spring Security.

2. Configurer Stormpath

Avant de pouvoir vraiment intégrer Stormpath, nous devons créer un jeton d'accès dans le cloud de Stormpath. Pour cela, nous devonssign up sur leur site Web. Please remember that for development purpose we’ll need to sign up as a developer - ce qui nous donne 10000 appels API par mois d'utilisation du mode gratuit.

Bien sûr, si nous avons déjà un compte Stormpath actif, nous pouvons l'utiliser et directementlogin.

Maintenant, nous devons créer les clés API; en cliquant sur le lienManage API Keys” à l'intérieur deDevelopers Tools, nous verrons un bouton nommé «*Create API Key*“.

Nous devons cliquer sur ce bouton pour générer la clé API. Lorsque vous cliquez sur, nous sommes invités à télécharger un fichier de propriétés contenant les détails de la clé API. Le contenu ressemblera à ceci:

apiKey.id = xxxxxxxxxxx
apiKey.secret = xxxxxxxxxxxx

Nous devons stocker ces détails très soigneusement car ces données ne peuvent plus être récupérées sur le serveur.

3. Construire l'application

3.1. Dépendances Maven

Pour utiliser l’API Stormpath, nous devons utiliser leur SDK Java. Pour cela, nous devons intégrer la dépendance suivante dans lespom.xml:


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

Vous pouvez trouver la dernière version desstormpath-default-spring-boot-starter dansCentral Maven Repository.

3.2. Configuration de sécurité de printemps

L'un des avantages de l'utilisation de Stormpath est que nous n'avons pas besoin d'ajouter beaucoup de code standard pour configurer Spring Security. Les quelques lignes de code suivantes sont tout ce dont nous avons besoin pour configurer complètement l'application:

@Configuration
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {

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

Lestormpath() est une méthode statique, qui sera en fait suffisante pour une simple intégration avec Spring Security.

Ce qui est encore plus intéressant ici, c'est que nous n'avons pas besoin de créer de pages HTML supplémentaires pour concevoir la connexion, l'inscription, etc. Stormpath générera ces pages; toutefois, en fonction de nos besoins, nous pouvons créer des pages personnalisées et intégrer les fonctionnalités de Stormpath.

3.3. Application.properties

Nous avons presque fini de construire cette application dépourvue d’os. Nous avons juste besoin d'ajouter les détails des clés API, que nous avons créés plus tôt dans le fichierapplication.properties:

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

Conformément aux directives Stormpath, il est toujours recommandé de placer des données sensibles dans les variables d'environnement JVM, au lieu de les utiliser dans lesapplication.properties.

Nous pouvons les déclarer en tant que paramètres JVM:

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

Maintenant, nous sommes prêts à démarrer l'application et à voir les résultats. Nous pouvons vérifier les URL suivantes pour tester les fonctionnalités de Stormpath:

  • /login - Page de connexion

  • /register - Page d'enregistrement

  • /forgot - Page de mot de passe oublié

3.4. Autres options

Il y a aussi une option intéressante à vérifier sur la page de connexion, le lienForgot Password dans la boîte de connexion. En cliquant sur ce lien, nous serons redirigés vers la page/forgot, où nous pouvons fournir notre adresse e-mail, que nous avons créée pour vous inscrire. Cela déclenchera un email automatique contenant le lien pour réinitialiser un mot de passe.

Cependant, nous devons faire la configuration suivante dans Stormpath Admin Panel pour configurer ceci:

  • Cliquez sur le lienDirectories en haut de la page. Il devrait montrer tous les répertoires créés avec ce compte. Par défaut, après l'inscription, Stormpath crée automatiquement un répertoire nomméStormpath Administrator. Cependant, si peut créer d'autres répertoires et les utiliser.

  • Dans le panneau de gauche, cliquez sur le lienWorkflows & Emails pour voir une option de réinitialisation du mot de passe. Par défaut, il est désactivé. Nous devons cliquer sur le boutonEnabled pour l'utiliser.

  • Dans lesLink Base URL, nous devons donner l'URL de notre application et cette URL sera jointe à l'e-mail de réinitialisation du mot de passe.

4. Conclusion

Dans cet article rapide, nous avons appris à intégrer facilement Spring Security à Stormpath.

Il existe de nombreuses autres configurations comme la vérification des e-mails, etc., qui peuvent être configurées viaStormpath Admin Console; en utilisant ceux-ci, nous pouvons créer une application sécurisée assez rapidement.

Et, comme toujours, vous pouvez trouver le code source completon GitHub.