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

SDK Discussion :

Authentification avec OpenDocument / RESTful


Sujet :

SDK

  1. #1
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 277
    Points : 11 733
    Points
    11 733
    Par défaut Authentification avec OpenDocument / RESTful
    Bonjour à tous,

    Je viens de faire quelques tests sur l'application OpenDocument, tout marche bien tant que j'ai déjà une session ouverte.

    A priori, je vais avoir des pages PHP, donc je peux difficilement utiliser les interfaces Java pour ouvrir une session et la sérialiser. Par contre, il semblerait que je puisse appeler une interface "RESTful" en web service pour récupérer un token de session.

    Est-ce que quelqu'un a déjà fait ça ou saurait m'en dire plus ?

    En vous remerciant,
    Antoun
    Expert Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

  2. #2
    Expert confirmé
    Avatar de doc malkovich
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2008
    Messages
    1 884
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 884
    Points : 4 285
    Points
    4 285
    Billets dans le blog
    1
    Par défaut
    Hello Antoun,

    Perso j'ai fait des tests en python. En php je ne sais pas, tu peux voir le post suivant et relancer ssas92 qui avait quelques soucis en php.

    A+
    N'oubliez pas de cliquer sur lorsque votre problème est réglé !

  3. #3
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 277
    Points : 11 733
    Points
    11 733
    Par défaut
    Merci Doc, je vais tester ça.
    Antoun
    Expert Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

  4. #4
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 277
    Points : 11 733
    Points
    11 733
    Par défaut
    J'essaie de comprendre ton exemple Python.
    Si je ne dis pas de bêtise, ton premier appel au serveur est celui de la ligne 33, où tu récupères le logon token...
    Par contre, il y a des points fondamentaux qui me semblent très mystérieux :

    1. pourquoi ton hostUrl est dans un </span><a></a><span> ?
    2. à quel moment tu lui indiques la méthode à utiliser (pour moi, il aurait dû y avoir createLogonToken quelque part) ?
    3. à quel type d'appel correspond ton urllib.request.urlopen ? un POST ? un GET ? autre chose ?


    Merci pour tout éclaircissement !
    Antoun
    Expert Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

  5. #5
    Expert confirmé
    Avatar de doc malkovich
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2008
    Messages
    1 884
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 884
    Points : 4 285
    Points
    4 285
    Billets dans le blog
    1
    Par défaut
    Hello Antoun,

    1. C'est un bug de l'affichage/éditeur de SCN. Il n'y a pas de balise span en fait, mais comme il y a un http:, l'affichage se passe mal et affiche une balise qu'il ne faut pas
    2. Tu récupère le token dans la 1ère phase, dans le logonToken. C'est un exemple de script, en effet tu pourrais faire des procédures, des fonctions mais là c'est bourrin
    3. Tu ne donnes pas la méthode GET ou POST via urllib.request, tu le sais d'après la doc de sap si l'url est en GET ou POST


    Je ne suis pas expert en python, je ne pense pas que ce soit la meilleure méthode, mais comme il y a peu d'exemples sur le sujet et que ça marche ...

    A+
    doc
    N'oubliez pas de cliquer sur lorsque votre problème est réglé !

  6. #6
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 277
    Points : 11 733
    Points
    11 733
    Par défaut
    Merci de ta réponse !

    1 : ça me rassure, je ne voyais vraiment pas d'où ça sortait .

    2 : j'essaie juste de monter un POC, donc plus c'est bourrin mieux je comprends et plus ça me va !

    3 : la doc me dit d'utiliser du POST... mais je ne comprends pas bien comment j'envoie un contenu en POST, pour moi POST c'est des champs de formulaire, donc des paires clef/valeur
    Antoun
    Expert Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

  7. #7
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 277
    Points : 11 733
    Points
    11 733
    Par défaut
    Bon, j'arrive à envoyer ma requête en PHP et recevoir une réponse, par contre la réponse en question est

    RWS 000079 Veuillez valider votre entrée. (RWS 000079)
    Selon la doc, ce message signifie : "Please make sure the content of your request is formatted correctly and contains all the necessary fields"...

    Voici mon code :
    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
    20
    21
    22
    23
    24
     
    $url = 'http://serveurBO:6405/biprws/logon/long';
     
    $data ='<attrs>
    <attr name="userName" type="string"/>Ali Baba</attr>
    <attr name="password" type="string"/>Sésame ouvre-toi</attr>
    <attr name="auth" type="string" possibilities="secEnterprise,secLDAP,secWinAD,secSAPR3">secEnterprise</attr>
    </attrs>
    ';
     
    $options = array(
        'http' => array(
            'header'  => "Content-type: application/xml\r\nAccept: application/xml",
            'method'  => 'POST',
    		'content' => urlencode($data) ,
    		'ignore_errors' => TRUE
        )
    );
    $context  = stream_context_create($options);
    $result = fopen($url, "r", false, $context);
    if ($result === FALSE) { echo "raté" ; }
     
    var_dump($http_response_header);
    echo stream_get_contents($result);
    Antoun
    Expert Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

  8. #8
    Expert confirmé
    Avatar de doc malkovich
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2008
    Messages
    1 884
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 884
    Points : 4 285
    Points
    4 285
    Billets dans le blog
    1
    Par défaut
    là je sais pas

    c'est comme ça qu'on fait en php ? tu as essayé sur d'autres url en restful ? il y en a des dispo sur le net pour tester.
    N'oubliez pas de cliquer sur lorsque votre problème est réglé !

  9. #9
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 277
    Points : 11 733
    Points
    11 733
    Par défaut
    ça y est, ça marche. Il y avait une coquille XML et il fallait enlever le urlencode. ça donne ça :
    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
    20
    21
    22
    23
    24
     
    $url = 'http://serveurBO:6405/biprws/logon/long';
     
    $data ='<attrs>
    <attr name="userName" type="string">Ali Baba</attr>
    <attr name="password" type="string">Sésame ouvre-toi</attr>
    <attr name="auth" type="string" possibilities="secEnterprise,secLDAP,secWinAD,secSAPR3">secEnterprise</attr>
    </attrs>
    ';
     
    $options = array(
        'http' => array(
            'header'  => "Content-type: application/xml\r\nAccept: application/xml",
            'method'  => 'POST',
    		'content' => $data ,
    		'ignore_errors' => TRUE
        )
    );
    $context  = stream_context_create($options);
    $result = fopen($url, "r", false, $context);
    if ($result === FALSE) { echo "raté" ; }
     
    var_dump($http_response_header);
    echo stream_get_contents($result);
    Pour être totalement franc, ça marche quand le mot de passe ne contient pas de caractère spécial, sinon ça a l'air de poser certains problèmes, mais là ça n'est plus du BO...
    [EDIT] en fait, pas de problème avec les caractères spéciaux, c'est mon mode d'authentification qui était mauvais
    Antoun
    Expert Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. prob d'authentification avec Java Script !!!!!
    Par King_T dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 10/05/2006, 20h18
  2. Réponses: 2
    Dernier message: 10/05/2006, 08h50
  3. fonctionne avec les sessions pas avec le reste
    Par hugo69 dans le forum Langage
    Réponses: 6
    Dernier message: 22/11/2005, 10h38
  4. Pas de fenètre d'authentification avec .htaccess
    Par damjal dans le forum Apache
    Réponses: 2
    Dernier message: 02/11/2005, 09h40
  5. [MySQL] mécanisme d'authentification avec BD
    Par lalyly dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 16/10/2005, 14h26

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