Problème lors de l'intégration d'un gadget Nuxeo dans un conteneur externe.

Bonjour,

Cette question fait suite à cette question.

J'aimerais comme c'est marqué dans votre documentation (url: Opensocial, Oauth And Nuxeo) utiliser mon propre serveur de rendu de gadgets (shindig) et pouvoir afficher les gadgets de Nuxeo à l'intérieur.

Lorsque je lance cette demande :

http://my.shindig.server/gadgets/ifr?container=default&nocache=1&country=ALL&lang=fr&view=default&permission=[Everything]&url=http://nuxeo-server:8080/nuxeo/site/gadgets/lastpublisheddocuments/lastpublisheddocuments.xml&up_nuxeoTargetRepository=default&up_nuxeoTargetContextPath=/default-domain&up_nuxeoTargetContextObject=Domain

Je récupère une erreur 500 (Internal Server Error) comme quoi “Le Security Token est requis”. En traçant les requêtes et entêtes HTTP effectuées au serveur Nuxeo (/gadgets/makeRequest), je vois bien que le gadget Nuxeo se configure pour utiliser le OAuth (OAUTH_SERVICE_NAME: nuxeo / OAUTH_USE_TOKEN: always) mais je n'ai aucun popup pour me demander l'autorisation d'accèder à mes données Nuxeo.

Mon fichier oauth.json est configuré comme ci-dessous :

  "http://nuxeo-server:8080/nuxeo/site/gadgets/lastpublisheddocuments/lastpublisheddocuments.xml" : {
    "nuxeo" : {
      "consumer_key" : "my_consumer_key",
      "consumer_secret" : "QP70eNmVz8jvdPevU3oJD2AfF7R7odC2XJcn4XlZJqk",
      "key_type" : "HMAC_SHA1"
    }
  },

Auriez vous une idée pour me débloquer ?

Merci d'avance

Pierre (Lille)

0 votes

2 answers

2515 views

ANSWER



C'est bon j'ai trouvé et ca fonctionne correctement :)

Alors je résume en quelques mots :

  • Au niveau de mon serveur Shindig PHP, j'ai déclaré mes deux certificats RSA (private et public).

  • Au niveau du serveur Nuxeo, dans l'Admin Center, j'ai déclaré un nouveau consommateur :

    | Nom du Consumer Key

    | Ma clé RSA Public (CERTIFICATE)

    | Allow 2 legged : supporté (utiliser l'identifiant OpenSocial Owner comme identifiant de connexion)

Mais pour signaler au serveur Nuxeo que ma requête doit être signé, j'ai dû modifier le fichier JS “nuxeo-webengine-gadgets-5.4.2.jar” dans le path “/skin/resources/scripts/default-automation-requests.js”

// select auth mode
if (NXGadgetContext.insideNuxeo || true) {

Mais à part cette modification, je n'ai rien changé au niveau du code, alors je sais pas si on peut faire autrement pour signaler au serveur Nuxeo que la requete doit etre signé et non Oauth.

Bonne continuation Pierre

0 votes



Avez-vous essayé en renseignant les informations “consumer” dans la partie OAuth/OpenSocial de l'Admin Center dans Nuxeo?

0 votes



Bonjour,

Oui j'ai bien renseigné la partie "Oauth/Opensocial" dans l'admin center, avec les deux formes possibles en signature HMAC et en certificat RSA.

J'ai essayé via un script php de m'interfacer avec Nuxeo pour l'échange des tokens OAuth et tout fonctionne correctement. Je recupere correctement mes jetons de consommateurs "Oauth Token et OAUth Token Secret" pour mon utilisateur.

Mon problème est que je souhaite utiliser mon propre moteur de rendu de gadgets (shindig) pour pouvoir intégrer au mieux les gadgets opensocial dans mon environnement de travail.

Es ce que le serveur Nuxeo accepte le protocole Oauth pour un serveur shindig externe ? si oui, dans quel protocole HMAC ou RSA ?

Dans mon cas, mon serveur shindig récupère une erreur 500 de la part du serveur Nuxeo comme quoi le security token n'est pas valide. Sachant que le gadgets Nuxeo se mettent bien en authentification Oauth et non Signed comme dans l'utilisation du DashBoard Nuxeo.

Je suis un peu perdu. Si vous pouviez m'aiguiller sur des pistes….

Merci d'avance Pierre

02/20/2012