IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Services Web Java Discussion :

Limiter certaines méthodes du WebService à certains rôles


Sujet :

Services Web Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut Limiter certaines méthodes du WebService à certains rôles
    Bonjour,

    J'utilise CXFServlet + Spring pour exposer un WebService de type POJO.

    Je cherche maintenant comment je peux configurer des restrictions au niveau de certaines méthodes, à des parties "trustées". Je n'ai pas de contraintes particulières hormis le fait que ces méthodes ne doivent pouvoir être appelées que par certaines de nos applications.

    Quelqu'un pourrait me mettre sur la voie? L'idéal serait un @LimitToRoles à mettre sur la méthode mais, je ne sais pas trop pourquoi, j'ai dans l'idée que ça ne dois pas être aussi simple


    Merci d'avance.

  2. #2
    Membre éclairé Avatar de rockley
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    404
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 404
    Par défaut
    Je sais pas si c'est vraiment ce que tu cherche, car je m'inspire directement de ce que je connais et qu'au départ c'est pas fait pour. Pour sécuriser les échanger, en phase de test on a utilisé les IP (en prod on utilise les certifs).
    Les clients avec tel IP avaient le droit d'utiliser le WS et pas d'autre.


    Si tu connais par avance l'IP est "membres privilégier", tu le récupère et tu leurs donne les droits.

  3. #3
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    En fait, je cherchais quelque chose de simple à mettre en œuvre, et récupérer les IP ça complique un peu beaucoup le code du WebService, puisque celui-ci est un pur POJO qui recoit des paramètres et retourne des valeurs.

    Pour le moment, on a opté pour Spring-Security, avec authentification basique et annotation de certaines méthodes du WebService pour exiger un rôle précis.

    Je suis juste un peu coincé car du coup je dois forcer le login sur tout le WebService. Je n'arrive pas à faire comprendre à Spring Security que si on ne sais pas rentrer dans la méthode, il faut pas envoyer la réponse SOAP HTTP 500 de CXF (Access Denied) mais la remplacer par une réponse HTTP 401...

  4. #4
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Par défaut
    Bonjour,

    T'es sûr qu'il n'y a pas un problème avec l'erreur HTTP 500 car celle-ci correspond à une erreur "Internal Server Error" et non pas un accès non autorisé, dont le code est 403... (si toutefois ça pouvait changer ton problème).
    Responsable FAQ Eclipse | Maintiens et développe un des logiciels destinés aux rédacteurs sur developpez.com
    Gardons toujours à l'esprit que le forum constitue une base documentaire, dont l'utilité et la qualité dépendent du soin apporté à nos questions et nos réponses. Soyons polis, précis (dans le titre et dans le corps des questions), concis, constructifs et faisons de notre mieux pour respecter la langue française et sa grammaire. Merci pour nous (les modérateurs) mais aussi et surtout, merci pour vous.
    Problème solutionné => je vais au bas de la page et je clique sur le bouton (qui suite à mise à jour du forum, a légèrement changé d'aspect).

  5. #5
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Ben justement

    j'aimerais que spring security renvoie le 403.

    Pour le moment il se passe ça

    spring security filter -> servlet cxf -> invocation methode addX sur l'implementation du web service -> vérification par spring security -> AccessDeniedException
    Et ça remonte jusque CXF qui génère du coup un soap avec http code 500 access denied.

    Mais du coup comme l'exception ne remonte pas plus haut (security filter) spring security n'envoie pas le 403

  6. #6
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Par défaut
    Je ne suis pas sûr que tu aies compris ce que j'ai voulu dire...
    Normalement une erreur
    Citation Envoyé par tchize_ Voir le message
    http code 500 access denied
    ça n'existe pas. Soit tu as une erreur 500 Internal Server Error, soit tu as une erreur 403 Access Denied mais pas un mix des deux ! Ou alors, si c'est le cas, c'est justement parce qu'il y a un problème qui t'empêche de savoir quelle est la vraie nature de l'erreur (ça peut très bien être un NullPointerException quelque part). Bon, cela dit, ne connaissant pas Spring Security, c'est peut-être parfaitement logique mais c'est tout de même bizarre d'avoir HTTP 500 avec Access Denied...
    Responsable FAQ Eclipse | Maintiens et développe un des logiciels destinés aux rédacteurs sur developpez.com
    Gardons toujours à l'esprit que le forum constitue une base documentaire, dont l'utilité et la qualité dépendent du soin apporté à nos questions et nos réponses. Soyons polis, précis (dans le titre et dans le corps des questions), concis, constructifs et faisons de notre mieux pour respecter la langue française et sa grammaire. Merci pour nous (les modérateurs) mais aussi et surtout, merci pour vous.
    Problème solutionné => je vais au bas de la page et je clique sur le bouton (qui suite à mise à jour du forum, a légèrement changé d'aspect).

Discussions similaires

  1. Réponses: 9
    Dernier message: 01/10/2012, 15h44
  2. Limiter l'accès à un webservice aux utilisateurs Iphone
    Par LestoK dans le forum Services Web
    Réponses: 3
    Dernier message: 14/03/2011, 18h49
  3. bloquer l'utilisation de certaines méthodes dans un plug-in
    Par henpower dans le forum Eclipse Platform
    Réponses: 0
    Dernier message: 28/08/2008, 15h43
  4. [c#] passer un xml document à une méthode du webservice
    Par nemya dans le forum Services Web
    Réponses: 3
    Dernier message: 18/12/2006, 15h17
  5. [Thread] Invocation méthode pendant un certain temps
    Par the java lover dans le forum Concurrence et multi-thread
    Réponses: 11
    Dernier message: 01/02/2006, 18h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo