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

API standards et tierces Java Discussion :

[ODATA][OLINGO] Authentification NTLM


Sujet :

API standards et tierces Java

  1. #1
    Membre expérimenté
    Avatar de narmataru
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 548
    Points : 1 680
    Points
    1 680
    Par défaut [ODATA][OLINGO] Authentification NTLM
    Bonjour,

    Je souhaite me connecter aux service OData de Microsoft CRM 2016. Pour cela je compte utiliser Olinga. Notre serveur est configuré pour accepter l'authentification NTLM. J'accède bien aux service SOAP de MS CRM avec axis2/ntm par exemple.

    Avec Olinga j'ai constamment une erreur 401/Unauthorized...

    Voici le 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
     
        public final static void main(String[] args) {
            try {
                ODataClient client = ODataClientFactory.getClient();
                ODataServiceDocumentRequest req = client.getRetrieveRequestFactory().getServiceDocumentRequest(Resources.SERVICEROOT);
     
                String host = Resources.HOST;
                //String host = InetAddress.getLocalHost().getHostName();
                NTLMAuthHttpClientFactory ntlm = new NTLMAuthHttpClientFactory(Resources.USERNAME, Resources.PASSWORD, host,
                        Resources.DOMAIN);
                client.getConfiguration().setHttpClientFactory(ntlm);
     
                ODataRetrieveResponse<ClientServiceDocument> res = req.execute();
     
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    Et le résultat:
    org.apache.olingo.client.api.communication.ODataClientErrorException: (401) Unauthorized [HTTP/1.1 401 Unauthorized]
    at org.apache.olingo.client.core.communication.header.ODataErrorResponseChecker.checkResponse(ODataErrorResponseChecker.java:75)
    at org.apache.olingo.client.core.communication.request.AbstractRequest.checkResponse(AbstractRequest.java:54)
    at org.apache.olingo.client.core.communication.request.AbstractODataRequest.doExecute(AbstractODataRequest.java:310)
    at org.apache.olingo.client.core.communication.request.retrieve.ODataServiceDocumentRequestImpl.execute(ODataServiceDocumentRequestImpl.java:57)
    at org.apache.olingo.client.core.communication.request.retrieve.ODataServiceDocumentRequestImpl.execute(ODataServiceDocumentRequestImpl.java:37)
    at org.talend.training.mscrm20216.OData.MSCrm2016OData.main(MSCrm2016OData.java:47)
    Lorsque j'analyse le trafique réseau avec Wireshark, il n'y a qu'une trame HTTP avec la réponse 401 qui est la trame de type 1 NTLM de négociation. Les autres échanges pour l'authentification ne se font pas...

    Merci pour tout aide,
    Cordialement.

  2. #2
    Membre expérimenté
    Avatar de narmataru
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 548
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 548
    Points : 1 680
    Points
    1 680
    Par défaut


    Je définissais l'authentification ntlm après l'appelle au service ! Du coup ntlm n'était pas utilisé...

    Correction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
                String host = Resources.HOST;
                //String host = InetAddress.getLocalHost().getHostName();
                NTLMAuthHttpClientFactory ntlm = new NTLMAuthHttpClientFactory(Resources.USERNAME, Resources.PASSWORD, host,
                        Resources.DOMAIN);
                client.getConfiguration().setHttpClientFactory(ntlm);
     
                ODataServiceDocumentRequest req = client.getRetrieveRequestFactory().getServiceDocumentRequest(Resources.SERVICEROOT);

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

Discussions similaires

  1. [Security] Authentification NTLM
    Par ®om dans le forum Spring
    Réponses: 0
    Dernier message: 13/05/2009, 16h52
  2. Authentification NTLM et variable POST
    Par JmL40 dans le forum Langage
    Réponses: 1
    Dernier message: 12/03/2008, 17h02
  3. Authentification ntlm et zone Intranet
    Par jeff_! dans le forum IIS
    Réponses: 0
    Dernier message: 07/11/2007, 15h03
  4. Proxy squid avec authentification NTLM
    Par chrisbadj dans le forum Réseau
    Réponses: 3
    Dernier message: 08/08/2007, 16h32
  5. Authentification NTLM avec ASP 3.0
    Par Poussy-Puce dans le forum IIS
    Réponses: 1
    Dernier message: 26/02/2007, 22h46

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