01 April 2020

blog java spring jwt

Exemple complètement basique

Une configuration par défaut peut être mise en place en ajoutant :

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>

dans les logs.

Cette configuration peut soit être désactivée, soit "surpassée" en redéfinissant certaines méthodes de l'adapter.

A noter que la configuration a été simplifiée dans spring boot 2 et que la prise en compte de certaines propriétés à disparue.

Le chapitre suivant complète utilement, graçe à la syntaxe à utiliser dans la configuration de l'objet http :
https://www.baeldung.com/java-config-spring-security

httpBasic() genère un ensemble d'éléments de configuration basique
loginForm() genère une page de login en /login. Si un emplacement et précisé, avec loginPage("/login"), l'emplacement est appelé.

Quelques détails sur la gestion du formulaire / emplacement par défaut :
* Spring Security Form Login

Exemples d'authentification avec JWT avec Sprint Boot

Cet article montre un exemple interessant :

Autre exemple, envoyé par Marc-Antoine :

J'ai également trouvé des indications interessante dans le suivant :

Récupération des informations de l'utilisateur

Autres articles

https://stormpath.com/blog/build-secure-user-interfaces-using-jwts

https://openclassrooms.com/fr/courses/2091901-protegez-vous-efficacement-contre-les-failles-web/2863569-la-csrf

Très pédagogique :
https://hasura.io/blog/best-practices-of-using-jwt-with-graphql

https://www.baeldung.com/rest-api-spring-oauth2-angular
https://www.baeldung.com/keycloak-embedded-in-spring-boot-app
https://www.baeldung.com/spring-security-oauth-jwt

https://spring.io/guides/gs/securing-web/
https://dzone.com/articles/spring-boot-security-json-web-tokenjwt-hello-world

Problème particulier du hachage de mot de passe

https://www.baeldung.com/spring-security-5-default-password-encoder
https://www.devglan.com/spring-security/spring-boot-security-password-encoding-bcrypt-encoder
https://stackoverflow.com/questions/49633672/spring-security-5-0-0-removed-md5passwordencoder

Sur le traitement @preFilter ou @postFilter

Le français est bizarre, on dirait de la traduction automatique, mais permet de comprendre les annotations de méthodes.