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 :

[Axis2 1.4.1/Rampart 1.4] Spécifier la policy côté serveur


Sujet :

Services Web Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 9
    Par défaut [Axis2 1.4.1/Rampart 1.4] Spécifier la policy côté serveur
    Bonjour,

    Quelqu'un a t-il trouvé un moyen flexible d'externaliser la définition de la politique de sécurité côté serveur?

    J'explicite un peu :

    Côté client, en utilisant axis2 + rampart, il est possible de passer au module rampart le chemin vers un fichier policy.xml qui sera chargé et utilisé à l'exécution.

    Mon but serait d'avoir quelque chose d'équivalent côté serveur.

    D'après les docs Axis2, pour le côté serveur on peut utiliser les fichiers axis2.xml et services.xml. Mon problème est que cela ne semble être utilisé qu'à la production pour ajouter des assertions dans le wsdl, et ce n'est pas ce que je veux (séparation des problèmes). J'avais lu sur des forums anglophones qu'il était envisageable d'utiliser WS-PolicyAttachment pour référencer un fichier externe (quitte pour le coup à ce que ça m'oblige à rajouter quelques tags dans le wsdl), mais n'ai pas réussi à l'utiliser : si quelqu'un a un exemple probant, je suis preneur.

    Merci d'avance.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    9
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 9
    Par défaut
    (Ayant creusé le côté WS-PolicyAttachement, je peux affirmer qu'il ne répond pas à mon besoin : dans Axis2/Rampart, les policy attachement sont bien traités à condition que la définition de la policy soit embarquée à l'endroit ou est fait le point d'attache. Si on essaye d'utiliser un fichier externe grâce à wspolicyReference, on a systématiquement une exception...)

    Voici la solution que j'ai employé finalement, si ça peut intéresser des gens :

    Il est possible de déclarer dans le fichier services.xml une class implémentant l'interface org.apache.axis2.engine.ServiceLifeCycle.
    Elle oblige à implémenter deux méthodes : startUp et shutDown, qui comme leurs noms l'indiquent sont appelées au démarrage de l'appli (ou au deploy du service) et à la fin (ou au undeploy).
    Dans la méthode de startup, il m'a été possible d'écrire un code similaire à ce qu'on peut trouver dans un client :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    	public void startUp(ConfigurationContext configctx, AxisService service) {
     
    		Object rampartPolicy = configctx
    				.getProperty(RampartMessageData.KEY_RAMPART_POLICY);
    		if (rampartPolicy == null) {
    			try {
    				InputStream resource = new FileInputStream("policy.xml");
    				StAXOMBuilder builder = new StAXOMBuilder(resource);
    				Policy policy = PolicyEngine.getPolicy(builder
    						.getDocumentElement());
    				configctx.setProperty(
    						RampartMessageData.KEY_RAMPART_POLICY, policy);
    			} catch (XMLStreamException e) {
    				logger.error("Error while parsing policy file", e);
    			} catch (FileNotFoundException e) {
    				logger.error("Policy file not found", e);
    			}
    		}
    Ce n'est peut-être pas la méthode la plus élégante, mais ça répond à mon besoin (d'autant que ce code est utilisé dans un stub qui se fait passer pour le serveur).

Discussions similaires

  1. [Axis2 / Rampart / JAX-WS] Problème de sécurité
    Par suse20 dans le forum Services Web
    Réponses: 1
    Dernier message: 25/07/2012, 19h46
  2. UsernameToken Authentication avec Rampart/axis2
    Par hibato0229 dans le forum Services Web
    Réponses: 1
    Dernier message: 19/10/2011, 09h03
  3. axis2 + rampart ?
    Par stachus dans le forum Services Web
    Réponses: 2
    Dernier message: 16/05/2007, 15h46
  4. [Web Service]Axis2 + Rampart
    Par xino_ dans le forum Services Web
    Réponses: 4
    Dernier message: 08/03/2007, 11h28
  5. spécifier NOT NULL - champ existant
    Par internet_killer dans le forum PostgreSQL
    Réponses: 11
    Dernier message: 06/05/2004, 10h24

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