سؤال

أحاول استخدام عميل Jakarta Commons HTTP. القيام مصادقة Kerberos للتواصل مع خادم. المصادقة تفشل دائما. عند الحفر أعمق ، اكتشفت أن رأس Kerberos Token يحتوي على أحرف تغذية خط عودة النقل فيه وهو السبب الجذري للمشكلة. لماذا لديها أحرف r n ولماذا هذه مشكلة؟

هل كانت مفيدة؟

المحلول

r n أحرف في رمز Kerberos هي مشكلة لأن r عبارة عن أحرف تحكم HTTP. هذا يعني في الأساس أن الخادم لا يرى سوى السطر الأول من الرمز المميز ويتجاهل الراحة وبالتالي فشل المصادقة. ومما يزيد الأمر سوءًا ، يتم التعامل مع إعجاب الرمز المميز التالي كرؤوس جديدة ولن يتم تنسيقه جيدًا. لذلك سوف يخيف خادم HTTP.

والسبب في حدوث ذلك هو أن مواصفات RFC 1521 تقول أن طول خط الترميز BASE64 محدود عند 76 حرفًا. وبالتالي r n الأحرف. وهذا لا يعمل بشكل جيد مع بروتوكول HTTP. هذه الأسطح فقط إذا كنت تستخدم رموز Kerberos التي يتم ترميزها BASE64.

لذا فإن الحل لهذا هو تجريد الأحرف من رأس رمز Kerberos Base64 المشفر. أيضًا ، لن تحد الإصدارات الأقدم من برنامج Compach Compon Codec Base64 إلى 76 سطرًا وبالتالي ليست مشكلة. لذلك إذا كان لديك ربط في الترميز ، فقم بتجريد الأحرف الإشكالية. إذا لم تقم بذلك ، فاستخدم الإصدار الأقدم من رمز Apache Commons مع Commons-HTTPClient.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top