Est-ce que quelqu'un connaît une bibliothèque PHP pour la connexion de serveurs distants utilisant la méthode d'authentification Digest avec qop = auth-int? Ou, si non, maintenant devrais-je construire l'A2 pour le résultat? Il est dit dans la RFC 2617 que j'ai besoin d'utiliser un corps d'entité, mais qu'est-ce que c'est? Je viens d'envoyer une requête GET, elle n'a aucun corps. Merci d'avance.côté client PHP Authentification Digest avec qop = auth-int
0
A
Répondre
0
Si vous faites une requête GET, vous ne devriez pas avoir besoin d'auth-int. Si votre service l'exige, vous pouvez supposer un corps d'entité vide (vous pouvez donc faire md5 ("") pour cette partie du hachage A2).
1
Je cherchais la réponse à votre question aussi, pour des demandes autres que GET. Perheps vous pouvez utiliser quelque chose comme:
$entityBody = file_get_contents('php://input');
Je ne l'ai pas testé si cela fonctionne, mais en regardant the answer to this question il me ferait que ce sence devrait.
Notez que ce flux ne peut être lu qu'une fois [1], donc si vous en avez besoin ailleurs, vous devriez réutiliser la variable $ entityBody.
1
From my answer of a similar question:
I mis en œuvre le côté client authentification Digest en PHP avec cURL récemment. Voici le code complet:
<?php
error_reporting(E_ALL);
ini_set('display_errors','1');
$url = "https://api.example.com/ws.asmx/do";
$username = "username";
$password = "pwd";
$post_data = array(
'fieldname1' => 'value1',
'fieldname2' => 'value2'
);
$options = array(
CURLOPT_URL => $url,
CURLOPT_HEADER => true,
CURLOPT_VERBOSE => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_SSL_VERIFYPEER => false, // for https
CURLOPT_USERPWD => $username . ":" . $password,
CURLOPT_HTTPAUTH => CURLAUTH_DIGEST,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => http_build_query($post_data)
);
$ch = curl_init();
curl_setopt_array($ch, $options);
try {
$raw_response = curl_exec($ch);
// validate CURL status
if(curl_errno($ch))
throw new Exception(curl_error($ch), 500);
// validate HTTP status code (user/password credential issues)
$status_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($status_code != 200)
throw new Exception("Response with Status Code [" . $status_code . "].", 500);
} catch(Exception $ex) {
if ($ch != null) curl_close($ch);
throw new Exception($ex);
}
if ($ch != null) curl_close($ch);
echo "raw response: " . $raw_response;
?>
Questions connexes
- 1. Authentification Digest avec Jersey Client
- 2. PHP Digest authentification avec MD5
- 3. Authentification Digest utilisant URLConnection
- 4. Authentification Digest avec HttpWebRequest
- 5. Authentification Digest dans Swift avec Alamofire
- 6. php api digest authentification multipart formulaire données
- 7. Authentification Digest avec connexion personnalisée
- 8. Authentification client WCF côté serveur
- 9. Authentification HTTPS & Digest
- 10. Http Digest Authentification échoue dans node.js
- 11. Glassfish Digest Authentification
- 12. Authentification Digest avec clé publique/secrète
- 13. Authentification Angular Digest
- 14. Authentification Digest utilisant HttpURLConnection
- 15. Authentification Digest dans Devise
- 16. php curl avec digest renvoie deux réponses
- 17. Durandal js et authentification côté client
- 18. Rails 3 Authentification HTTP Digest
- 19. Java Digest Authentification POST XML
- 20. Authentification de base et de négociation Digest
- 21. Authentification Ruby - Digest pour les tableaux de savon et d'octets
- 22. Script PHP long avec rappel côté client
- 23. Authentification http digest dans asp .net mvc
- 24. Authentification Digest du client avec URLLIB2 ne se souvient pas des informations d'en-tête d'autorisation
- 25. HTTP Digest authentification à l'aide asiHttpRequest
- 26. PHP impression thermique côté client
- 27. Authentification Digest sur les requêtes http de clojure (?)
- 28. Authentification truststore Jetty avec authentification client SSL
- 29. Exécuter le côté client PHP
- 30. Comment puis-je faire une authentification Digest avec HttpWebRequest?
Super, merci beaucoup! –