Esta es una traducción que desde EGA Futura ofrecemos como cortesía a toda la Ohana y comunidad de programadores , consultores , administradores y arquitectos de Salesforce para toda Iberoamérica .

El enlace a la publicación original, lo encontrarás al final de este artículo.

En la versión Summer '21, una actualización de seguridad obligatoria aplicará modificadores de acceso en las propiedades de Apex en el marcado de componentes Lightning. En esta publicación, compartiremos lo que implica la actualización de seguridad y presentaremos una herramienta que lo ayuda a detectar las propiedades de Apex que están potencialmente afectadas.

Acerca de la actualización de seguridad

Debido a que la confianza es nuestro valor número uno, y debido a que parte de la confianza es saber que mantenemos altos estándares de seguridad, esta actualización de seguridad es obligatoria a partir del 12 de junio. La actualización impide el acceso a captadores Apex privados o protegidos de Aura y Lightning Web Components. Echemos un vistazo a dos ejemplos que ilustran el impacto de la actualización.

Ejemplo 1

En este primer ejemplo, tenemos un controlador Apex Example1 counter que tiene un captador privado. El controlador expone un getData() anotado con @AuraEnabled . El método devuelve una instancia de Example1 a los componentes Lightning.

 clase pública Example1 { @AuraEnabled contador de enteros públicos {obtención privada; colocar; } @AuraEnabled public static Example1 getData () { Resultado de Example1 = nuevo Example1 (); result.counter = 2; devolver resultado; }
}

Una vez que se aplica la actualización de seguridad, los componentes web Aura o Lightning que llaman a Example1.getData() ya no tendrán acceso al counter y eso puede causar errores en tiempo de ejecución.

Ejemplo 2

En este otro ejemplo, tenemos un Example2 que busca registros y los devuelve envueltos en una instancia de objeto PagedResult

 clase pública Example2 { @AuraEnabled public static PagedResult getRecords () { Resultados de PagedResult = new PagedResult (); results.records = [...]; devolver resultados; } clase privada PagedResult { @AuraEnabled Objeto público [] registros {protegido get; colocar; } }
}

Con la actualización de seguridad aplicada, los componentes Lightning ya no tienen acceso a la PagedResult.records porque el captador está protegido.

Si bien estos dos ejemplos pueden parecer poco comunes, querrá inspeccionar sus controladores Apex en busca de patrones similares para que no experimente errores de tiempo de ejecución después de que se aplique la actualización de seguridad. Encontrar esos patrones en una base de código grande no es trivial, por lo que hemos contribuido con una herramienta auxiliar para ese propósito.

Escaneo de propiedades de Apex afectadas

En lugar de inspeccionar todos sus controladores Apex uno por uno, compartimos una herramienta basada en el servidor de idiomas Apex que escanea su código base e informa las propiedades de Apex potencialmente afectadas. Salesforce no admite oficialmente esta herramienta y se proporciona tal cual sin ninguna garantía, pero es probable que le ahorre un tiempo valioso.

Todo lo que necesita para usar la herramienta es un Java JDK o JRE versión 11 o superior (esto ya es necesario para ejecutar VS Code). Luego, simplemente descargue el archivo JAR del repositorio del proyecto y ejecute el siguiente comando en una terminal donde PATH es la ruta de un directorio principal que contiene archivos .cls

 $> java -jar apex-scan-1.2.0.jar RUTA

Por ejemplo, así es como puede escanear todo su directorio force-app

 $> java -jar apex-scan-1.2.0.jar force-app
EnforcePrivateGetter.counter
EnforcePrivateGetter.PagedResult.pageSize Escaneó 1 archivo Apex y encontró 2 coincidencias potenciales.

En este ejemplo, el analizador encontró un archivo Apex que contiene dos propiedades que pueden verse afectadas por la actualización de seguridad. Gracias a la salida del programa, puede ver el nombre completo de las propiedades y tomar las acciones apropiadas si es necesario (eliminar los modificadores privados o protegidos).

Debido a que el cambio introducido por la actualización de seguridad podría afectar en última instancia a su producción, debe descargar la herramienta de escaneo y verificar su código hoy en preparación para el lanzamiento de Summer '21 el 12 de junio y la activación de la actualización de seguridad obligatoria.

Repositorio de herramientas auxiliares

Sobre el Autor

Philippe Ozil es un promotor principal de desarrolladores en Salesforce, donde se centra en la plataforma Salesforce. Escribe contenido técnico y habla con frecuencia en conferencias. Es un desarrollador de pila completa y disfruta trabajar en proyectos de DevOps, robótica y realidad virtual. Síguelo en Twitter @PhilippeOzil o revisa sus proyectos de GitHub @pozil .

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://developer.salesforce.com/blogs/2021/06/secure-apex-access-modifiers-for-summer-21-security-update.html

Entradas recomendadas