Apicurio-studio: لا تعمل متغير البيئة "APICURIO_SHARE_FOR_EVERYONE" بشكل جيد بما فيه الكفاية

تم إنشاؤها على ٢٠ سبتمبر ٢٠١٩  ·  3تعليقات  ·  مصدر: Apicurio/apicurio-studio

أهلا!
كنت أحاول بيئة var APICURIO_SHARE_FOR_EVERYONE .
يمكنني رؤية وتحرير واجهات برمجة التطبيقات من مستخدمين آخرين ، لكنها لا تعمل لرؤية " المتعاونين " أو " Mocks ".

عند البحث عن السبب ، وجدت أن خدمة "getMocks" لا تتحقق من الخاصية "isShareForEveryone ()" وتعيد 404 HTTP Error Satus ، لأن المستخدم ليس لديه تصاريح. نفس الشيء بالنسبة لقسم "المتعاونين".

ApicurioError

https://github.com/Apicurio/apicurio-studio/blob/master/front-end/studio/src/app/services/apis.service.ts

this.endpoint ("/ designs /: designId / mocks"،

""

public getMocks (apiId: string، from ؟: number، to ؟: number): وعد console.info ("[ApisService] الحصول على كافة mocks لـ API٪ s"، apiId)؛

    let getMocksUrl: string = this.endpoint("/designs/:designId/mocks", {
        designId: apiId
    }, {
        start: from,
        end: to
    });

    let options: any = this.options({ "Accept": "application/json" });

    console.info("[ApisService] Fetching API mocks: %s", getMocksUrl);
    return this.httpGet<ApiMock[]>(getMocksUrl, options);
}

> this.endpoint("/designs/:designId/collaborators",

public getCollaborators (apiId: string): الوعد console.info ("[ApisService] الحصول على متعاونين لتصميم API٪ s"، apiId)؛

    let getCollaboratorsUrl: string = this.endpoint("/designs/:designId/collaborators", {
        designId: apiId
    });
    let options: any = this.options({ "Accept": "application/json" });

    console.info("[ApisService] Fetching collaborator list: %s", getCollaboratorsUrl);
    return this.httpGet<ApiCollaborator[]>(getCollaboratorsUrl, options);
}

**https://github.com/Apicurio/apicurio-studio/blob/master/back-end/hub-api/src/main/java/io/apicurio/hub/api/rest/impl/DesignsResource.java**

> !this.storage.hasWritePermission

@تجاوز
مجموعة عامةgetMocks (String designId، Integer start، Integer end)
يطرح ServerError ، NotFoundException {
كثافة العمليات من = 0 ؛
int = 20 ؛
إذا (ابدأ! = فارغ) {
from = start.intValue () ،
}
إذا (النهاية! = فارغة) {
to = end.intValue () ؛
}

    try {
        String user = this.security.getCurrentUser().getLogin();
        if (!this.storage.hasWritePermission(user, designId)) {
            throw new NotFoundException();
        }
        return this.storage.listApiDesignMocks(designId, from, to);
    } catch (StorageException e) {
        throw new ServerError(e);
    }
}

@تجاوز
مجموعة عامةيطرح getCollaborators (String designId) ServerError و NotFoundException {
logger.debug ("استرداد جميع المتعاونين لواجهة برمجة التطبيقات: {}" ، designId)؛
metrics.apiCall ("/ design / {designId} / التعاون"، "GET")؛

    try {
        String user = this.security.getCurrentUser().getLogin();
        if (!this.storage.hasWritePermission(user, designId)) {
            throw new NotFoundException();
        }
        return this.storage.listPermissions(designId);
    } catch (StorageException e) {
        throw new ServerError(e);
    }
}

""

bug

التعليق الأكثر فائدة

أهلا! شكرًا لتعليقك ، بحثًا عن الخطأ ، اكتشفت أننا كنا نستخدم إصدارًا قديمًا. 0.2.27.
اسف بشأن ذلك.
سوف أقوم بتحديث التطبيق.
يمكنك استبعاد الخطأ.

شكرا.

ال 3 كومينتر

شكرا لتقرير الشوائب.

AguRyan في الإصدار الأخير ، اكتشفت أنه داخل الدالة hasWritePermission() ، تم تحديد isShareForEveryone() :

https://github.com/Apicurio/apicurio-studio/blob/v0.2.43.Final/back-end/hub-core/src/main/java/io/apicurio/hub/core/storage/jdbc/JdbcStorage. جافا # L275

هل لديك فكرة أخرى عن سبب هذه المشكلة؟

أهلا! شكرًا لتعليقك ، بحثًا عن الخطأ ، اكتشفت أننا كنا نستخدم إصدارًا قديمًا. 0.2.27.
اسف بشأن ذلك.
سوف أقوم بتحديث التطبيق.
يمكنك استبعاد الخطأ.

شكرا.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات