web-dev-qa-db-fra.com

Authentification et autorisation dans Spring Data REST

J'implémente une application basée sur Spring Data REST et je voudrais savoir s'il existe un moyen élégant d'implémenter des règles d'authentification et d'autorisation à l'aide de ce cadre ou des cadres.

Toutes les demandes HTTP au serveur REST doivent porter des en-têtes d'authentification, je dois les vérifier et décider d'autoriser ou non en fonction de la méthode HTTP et de l'association de l'utilisateur authentifié avec la ressource demandée. Par exemple, (l'application est le serveur REST d'un système d'apprentissage en ligne), les instructeurs peuvent accéder uniquement à leurs propres sections de cours, les étudiants peuvent accéder uniquement aux sections de cours auxquelles ils sont abonnés, etc.

Je voudrais savoir s'il existe un moyen par défaut d'implémenter l'autorisation dans Spring Data REST. Si la réponse est non, pourriez-vous faire une suggestion pour mon problème? Je pense à:

  • Filtres de servlet
  • Sécurité du printemps
  • Spring Data REST Handlers (comment accéder aux en-têtes HTTP?)
29
Rodrigo Guerra

Le meilleur pari pour vous est Spring Security. Cela vous aiderait à obtenir l'autorisation de manière beaucoup plus simple.

Spring Security nécessiterait une implémentation qui examine les en-têtes de demande et effectue l'opération de connexion par programme.

Reportez-vous ici à la réponse acceptée. J'avais suivi la même chose et implémenté la couche de sécurité devant mes services de repos (qui étaient construits à l'aide de RestEasy)

Authentification RESTful via Spring

Il existe également une autre méthode. Reportez-vous http://www.baeldung.com/spring-security-authentication-provider

Dans les deux cas, vous pouvez désactiver la création de session en déclarant l'authentification sans état dans la sécurité Spring, cela vous aiderait à améliorer considérablement les performances lorsqu'un grand nombre de hits est effectué vers les services sans état REST. .

14
Rakesh Waghela