Apicurio-studio: La variable de entorno "APICURIO_SHARE_FOR_EVERYONE" no funciona lo suficientemente bien

Creado en 20 sept. 2019  ·  3Comentarios  ·  Fuente: Apicurio/apicurio-studio

¡Hola!
Estaba probando el entorno var APICURIO_SHARE_FOR_EVERYONE .
Puedo ver y editar API de otros usuarios, pero no funciona para ver " Colaboradores " o " Simulacros ".

Buscando la causa, encontré que el servicio "getMocks" no verifica la propiedad "isShareForEveryone ()" y devuelve un error HTTP 404 Satus, porque el usuario no tiene permisos. Lo mismo para la sección "colaboradores".

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): Promise console.info ("[ApisService] Obteniendo todas las simulaciones para 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): Promesa console.info ("[ApisService] Obteniendo colaboradores para el diseño de 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

@Anular
colección públicagetMocks (String designId, Integer start, Integer end)
lanza ServerError, NotFoundException {
int de = 0;
int a = 20;
if (inicio! = nulo) {
from = start.intValue ();
}
if (end! = null) {
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);
    }
}

@Anular
colección públicagetCollaborators (String designId) lanza ServerError, NotFoundException {
logger.debug ("Recuperando todos los colaboradores para API: {}", designId);
metrics.apiCall ("/ diseños / {designId} / colaboradores", "OBTENER");

    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

Comentario más útil

¡Hola! Gracias por tu comentario, buscando el error, descubrí que estábamos usando una versión antigua. 0.2.27.
Lo siento por eso.
Actualizaré la aplicación.
Puede descartar el error.

Gracias.

Todos 3 comentarios

Gracias por reportar el error.

@AguRyan En la última versión, descubrí que dentro de la función hasWritePermission() , isShareForEveryone() está marcada:

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. java # L275

¿Tiene alguna otra idea sobre cuál es la causa de este problema?

¡Hola! Gracias por tu comentario, buscando el error, descubrí que estábamos usando una versión antigua. 0.2.27.
Lo siento por eso.
Actualizaré la aplicación.
Puede descartar el error.

Gracias.

¿Fue útil esta página
0 / 5 - 0 calificaciones