J'essaie d'utiliser le client http de jakarta commons. Faire l'authentification kerberos pour communiquer avec un serveur. L'authentification échoue toujours. En creusant plus profondément, j'ai découvert que l'en-tête kerberos possède des caractères de retour de ligne chariot qui sont la cause première du problème. Pourquoi a-t-il des caractères et pourquoi est-ce un problème?client http commons - jeton kerberos lors de la négociation a r n (chariot retour ligne feed) caractères
Répondre
Les caractères du jeton kerberos sont un problème car \ r est un caractère de contrôle HTTP. Cela signifie essentiellement que le serveur ne voit que la première ligne du jeton et ignore le repos, d'où l'échec de l'authentification. Pour empirer les choses, les goûts suivants du jeton sont traités comme de nouveaux en-têtes et ne seront pas bien formatés. Donc, le serveur http va paniquer. La raison pour laquelle cela se produit est que la spécification RFC 1521 indique que la longueur de la ligne de codage base64 est limitée à 76 caractères. D'où \ r \ n caractères. Et cela ne fonctionne pas bien avec le protocole HTTP. Cela ne surface que si vous utilisez des jetons Kerberos codés en base64.
La solution consiste donc à supprimer les caractères de l'en-tête codé kerberos base64. De plus, les anciennes versions du codec apache commons ne limiteront pas le codage en base64 à 76 lignes et ne poseront donc aucun problème. Donc, si vous avez un crochet dans l'encodage, supprimez les caractères problématiques. Si vous ne l'utilisez pas, utilisez une version plus ancienne du code apache commons avec commons-httpclient.
- 1. Retour chariot ("\ r \ n") en Java
- 2. Environment.NewLine renvoie parfois \ n Linefeed au lieu de \ r \ n Retour chariot, saut de ligne
- 3. TextBox let '\ n' le retour de chariot
- 4. différence entre newLine() et retour chariot ("\ r")
- 5. Conserver le retour chariot lors de l'utilisation de XDocument.Parse
- 6. Retour chariot dans XmlNode Innertext
- 7. Python file.write créant un retour chariot supplémentaire
- 8. RichTextBox copie a un retour chariot supplémentaire à la fin
- 9. Interpolation des caractères spéciaux (\ t, \ n, \ r etc.) lors de l'exécution en C#
- 10. requête SQL pour un retour chariot dans une chaîne et, finalement, enlever retour chariot
- 11. jeton non valide « \ n » a été trouvée sur la ligne 31 à la colonne 0
- 12. Retour chariot et sauts de ligne dans SQL Server
- 13. MySQL: retour chariot dans la requête
- 14. Suppression de tous les caractères \ n \ r d'un noeud XSLT?
- 15. Modes d'authentification mixtes: envoyer à la fois le jeton Kerberos et le jeton de nom d'utilisateur via HTTP avec WCF
- 16. Perl regexp/(\ r \ n | \ r | \ n)/
- 17. Comment remplacer le retour de chariot
- 18. MVC Preserve retour chariot - saut de ligne en html
- 19. Remplacement de \ r \ n (caractères de nouvelle ligne) après l'exécution de json_encode
- 20. A Data Feed Parsing
- 21. Configurer WCF client d'utiliser les services Web jeton Kerberos profil de sécurité 1.1
- 22. Ajouter retour chariot à la ressource de chaîne dans WPF
- 23. Suppression du retour chariot et de la nouvelle ligne à partir de la fin d'une chaîne dans C#
- 24. Insérer le caractère de retour chariot dans vim
- 25. vba userforms comportement de retour chariot
- 26. Expressions régulières pour insérer "\ r" tous les n caractères d'une ligne et avant un mot complet (essentiellement une fonction de retour à la ligne)
- 27. Double insertion mysql_real_escape_string de caractères de nouvelle ligne. Comment obtenir une nouvelle ligne de retour?
- 28. différence entre PHP \ r \ n \ n
- 29. Obtention de "La négociation SSPI (Security Support Provider Interface) a échoué" lors de l'utilisation d'un ServiceHostFactory
- 30. Le retour à la ligne automatique et le retour chariot ne fonctionnent pas à l'intérieur de la zone de texte