كيفية تكوين Grails 2.4.0 لحل القطع الأثرية من JFrog Artifactory مع المصادقة؟

StackOverflow https://stackoverflow.com//questions/24000409

سؤال

إنها مشكلة تحدث كل بضعة أشهر.أقوم ببعض ترقيات الكأس ولا يستطيع التطبيق حل القطع الأثرية الخاصة بي من مستودع التصنيع الآمن الخاص بي.هذه المرة قمت بالترقية إلى Grails 2.4.0 ولكن المشكلة موجودة مرة أخرى.لقد قمت بتكوين المستودع الخاص بي كما هو موضح في وثائق Grails (التي تبدو قديمة جدًا) ولكن لا تستطيع Grails حل تبعياتي من الريبو الخاص بنا.لا يتم المصادقة بشكل صحيح.

إذن أسئلتي الأخيرة التي طرحها العديد من الأشخاص بالفعل:

كيفية تكوين Grails (الحالي 2.4.0) مع maven كمحلل التبعية للعمل مع مستودع مخضرم خاص (مصنع) مع المصادقة بشكل صحيح؟ما الذي يجب علي كتابته إلى BuildConfig الخاص بي حتى يعمل؟

هذا لا يعمل:

if (Environment.current == Environment.PRODUCTION) {

    if (grails.project.dependency.resolver == "maven") {
        mavenRepo "http://repo.myRepoHost.com/plugins-release-local/", {
            auth([
                username: "reader",
                password: "readerPw"
            ])
        }
    }

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

المحلول 2

يمكنني حل هذه المشكلة ووجدت سبب وجود مشاكل دائما مع مستودعات آثارية تتطلب المصادقة.

هناك مشكلة حالة HTTP Heather مع Artifactory. إذا كنت قد جعلت من القطارات القذرة بأكملها الخاصة مع Admin-> Security-> General-> اسمح لعلم الاختيار الوصول المجهول (غير محدد) كل شيء يعمل لأن Artifactory يستجيب برمز حالة HTTP "401 إذن مطلوب" والغزورات طلب آخر مع تكوينه أوراق اعتماد التفويض التي تعمل بشكل جيد. خانة الاختيار غير محددة

إذا قمت بتحقق من مربع الاختيار (نظرا لأن لديك مستودعات خاصة ورسمية مثلي)، فستحصل على مشكلة مقدمة لأن Artifactory لا يستجيب مع رمز الحالة 401 بعد الآن. بدلا من ذلك يستجيب ب "404 غير موجود" حتى لو Artifact في مستودع ومجهول فقط ليس لديه حق الوصول إليه. في Access.log، يمكنك العثور على "Download Demied" في هذه الحالة، ولا تقدم الشجر طلبا ثانيا مع بيانات الاعتماد التي تكوينها بسبب رمز الحالة 404. تم التحقق من مربع الاختيار

إذا قمت بإنشاء مثيلات آثارية منفصلة لمستودعات عامة وخاصة أو علينا تنفيذ خيار تكوين جديد للحصول على وجبات لدعم ميزة "مصادقة دائما" على المستودعات المختارة. سأقترح هذا لفريق تطوير الشاجرات عبر Grains Bughtracker وسأبحث أيضا عن المطورين القذرين لبناء خيار الحل البديل لهذا الغرض.

نصائح أخرى

الإعداد التالي يعمل معي مع Artifactory

grails.project.dependency.resolver = "maven"
grails.project.ivy.authentication = {
    repositories {
        mavenRepo('http://localhost:8081/artifactory/grails-remote') {
             auth([
                realm: "Artifactory Realm",
                username: 'user',
                password: 'pass'
            ])
        }
    }
}

grails.project.dependency.resolution = {
    ...
    repositories {
        inherits true
    }
    ...
}

لاحظ أن المستودع لم يتم تعريفه في ملف grails.project.dependency.resolution قسم.
بالإضافة إلى ذلك، يجب عليك التأكد من أن المستخدم "القارئ" لديه الأذونات المطلوبة لمستودع "plugins-release-local".
إحدى الطرق الجيدة لاختبار إعداد المستودع هي التحقق من سجل الطلب/الوصول Artifactory ومراقبة الطلبات التي تنفذها Grails.

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