Saturday 21 October 2017

Manifest Jar Codebase Forex


Atributos del manifiesto de archivo JAR para seguridad El manifiesto del archivo JAR contiene información sobre el contenido del archivo JAR, incluida la información de seguridad y configuración. Utilice los atributos de manifiesto descritos en esta sección para mejorar la seguridad de la ejecución de RIA desde un navegador. Agregue los atributos al manifiesto antes de firmar el archivo JAR. Consulte Modificación de un archivo de manifiesto en el tutorial de Java para obtener información sobre la adición de atributos al archivo de manifiesto de JAR. Nota: Estos atributos se aplican a los applets firmados y las aplicaciones de Java Web Start. Estos atributos se ignoran para las aplicaciones Java independientes. Permisos Atributo El atributo Permisos se utiliza para verificar que el nivel de permisos solicitado por el RIA cuando se ejecuta coincide con el nivel de permisos que se estableció cuando se creó el archivo JAR. Utilice este atributo para evitar que alguien vuelva a implementar una aplicación firmada con su certificado y ejecutándola en un nivel de privilegio diferente. Establezca este atributo en uno de los siguientes valores: sandbox: indica que el RIA se ejecuta en el entorno limitado de seguridad y no requiere permisos adicionales. All-permissions - Indica que el RIA requiere acceso a los recursos del sistema de los usuarios. Para aplicaciones y subprogramas Java Web Start que utilicen JNLP, el valor del atributo Permissions debe coincidir con el nivel de permisos solicitado en el archivo JNLP o coincidir con el permiso predeterminado si no se solicita ningún nivel de permisos. De lo contrario, se mostrará un error y se bloqueará el RIA. Consulte Estructura del archivo JNLP para obtener información sobre el elemento de seguridad que se utiliza para solicitar el nivel de permisos. Si el elemento no está presente, el nivel de permisos predeterminado es sandbox. Para los applets que no utilizan JNLP, el valor del atributo Permissions debe coincidir con el nivel de permisos solicitado en la etiqueta del applet. De lo contrario, se mostrará un error y se bloqueará el RIA. Si la etiqueta del applet no contiene un nivel de permisos, los applets firmados se ejecutan con el nivel de permisos establecido por el atributo Permissions. Consulte Implementación con la etiqueta del applet para obtener información sobre cómo establecer el nivel de permisos en la etiqueta del applet. Si el control deslizante Nivel de seguridad en el Panel de control de Java está establecido en Muy alto o Alto. El atributo Permisos se requiere en el archivo JAR principal para el RIA. Si el atributo no está presente, entonces el RIA está bloqueado. Para el nivel de Mediana seguridad, si el atributo Permisos no está presente, el indicador de seguridad contiene una advertencia amarilla sobre el atributo faltante y se utiliza el nivel de permisos solicitado por el RIA. Atributo de base de código El atributo de base de código se utiliza para restringir la base de código del archivo JAR a dominios específicos. Utilice este atributo para evitar que alguien vuelva a implementar su aplicación en otro sitio web con fines maliciosos. Nota: Si el atributo Codebase no especifica un servidor seguro, como HTTPS. Existe algún riesgo de que su código pueda ser reutilizado en los esquemas de ataque Man-in-the-Middle (MITM). Establezca este atributo en el nombre de dominio o en la dirección IP donde se encuentra el archivo JAR para la aplicación. El protocolo y el número de puerto también se pueden incluir. Para ubicaciones múltiples, separe los valores con un espacio. Un asterisco () se puede utilizar como un comodín sólo al principio del nombre de dominio, y no se puede utilizar con sólo un dominio de nivel superior, como. La siguiente tabla muestra los valores de muestra y lo que coinciden. El valor del atributo Codebase debe coincidir con la ubicación del archivo JAR para el RIA. De lo contrario, se mostrará un error y se bloqueará el RIA. Si el atributo no está presente, se escribe una advertencia en la consola Java y se utiliza la base de código especificada para la etiqueta de applet o el archivo JNLP. Atributo de nombre de aplicación El atributo Nombre de aplicación se utiliza en las solicitudes de seguridad para proporcionar un título para su RIA firmado. Se recomienda el uso de este atributo para ayudar a los usuarios a tomar la decisión de confiar y ejecutar el RIA. El valor puede ser cualquier cadena válida, por ejemplo: Si el atributo Nombre de la aplicación no está presente en el manifiesto del archivo JAR, se escribe una advertencia en la consola Java y se utiliza el valor del atributo Main-Class. Si ninguno de los dos atributos está presente en el manifiesto, no se muestra ningún título en las indicaciones de seguridad. Los títulos no se muestran para los RIA no firmados. Application-Library-Allowable-Codebase Attribute El atributo Application-Library-Allowable-Codebase identifica las ubicaciones donde se espera encontrar su RIA firmado. Este atributo se utiliza para determinar lo que aparece en el campo Ubicación para el indicador de seguridad que se muestra a los usuarios cuando el archivo JAR de su RIA se encuentra en una ubicación diferente que el archivo JNLP o la página HTML que inicia su RIA. Si los archivos no están en las ubicaciones identificadas, el RIA está bloqueado. Establezca este atributo en los dominios donde se encuentran el archivo JAR, el archivo JNLP y la página HTML. Para especificar más de un dominio, separe los dominios por un espacio, por ejemplo: Si el atributo Application-Library-Allowable-Codebase está presente y coincide con la ubicación desde la que se inicia RIA, aparece un único host en el campo Location Para el indicador y la opción para ocultar futuros avisos se proporciona. Si este atributo está presente y se accede a los archivos desde una ubicación no incluida para el atributo, entonces el RIA está bloqueado. Si este atributo no está presente, varios hosts que corresponden a las ubicaciones del archivo JAR y el archivo JNLP o página HTML se enumeran en el campo Ubicación del mensaje. Cuando se muestran varios hosts, al usuario no se le da la opción de ocultar avisos futuros. Se recomienda el uso de este atributo para que los archivos para el RIA se accedan sólo desde ubicaciones conocidas. Este atributo no es necesario si el archivo JAR para el RIA se encuentra en la misma ubicación que el archivo JNLP o la página HTML que inicia el RIA. Consulte el atributo de base de código para obtener una descripción de los valores permitidos. Caller-Allowable-Codebase Attribute El atributo Caller-Allowable-Codebase se utiliza para identificar los dominios desde los que el código JavaScript puede realizar llamadas a su RIA sin avisos de seguridad. Establezca este atributo en el dominio que aloja el código JavaScript. Si se realiza una llamada desde código JavaScript que no se encuentra en un dominio especificado por el atributo Caller-Allowable-Codebase, la llamada se bloquea. Para especificar más de un dominio, separe los dominios por un espacio, por ejemplo: Si el atributo Caller-Allowable-Codebase no está presente, las llamadas desde el código JavaScript a su RIA muestran una advertencia de seguridad y los usuarios tienen la opción de permitir la llamada O bloquear la llamada. Para los RIA no firmados, el código JavaScript que requiere acceso al RIA debe estar en la misma ubicación que el archivo JAR principal de su RIA, de lo contrario, se le pedirá al usuario que permita el acceso. Las solicitudes de seguridad se muestran para cada instancia de classLoader de Applet. Consulte el atributo de base de código para obtener una descripción de los valores permitidos. Si se especifica un asterisco independiente () como valor para el atributo Caller-Allowable-Codebase, las llamadas desde el código JavaScript a su RIA muestran una advertencia de seguridad y los usuarios tienen la opción de permitir la llamada o bloquear la llamada. También se proporciona una opción para recordar la elección, y si se selecciona, la advertencia ya no se muestra cuando se inicia el RIA. Atributo de punto de entrada El atributo de punto de entrada se utiliza para identificar las clases que se permiten utilizar como puntos de entrada a su RIA. La identificación de los puntos de entrada ayuda a evitar que se ejecute código no autorizado cuando un archivo JAR tiene más de una clase con un método main (), varias clases de Applet o varias clases de JavaFX Application. Establezca este atributo en el nombre de clase totalmente calificado que se puede utilizar como punto de entrada para el RIA. Para especificar más de una clase, separe las clases por un espacio, por ejemplo: Punto de entrada: apps. test. TestUI apps. test. TestCLI Si el manifiesto JAR está firmado y el punto de entrada de la clase principal o de la clase applet especificado en El archivo JNLP o el descriptor de la aplicación difiere de la clase especificada para el atributo Entry-Point y, a continuación, se bloquea el RIA. Si el atributo Entry-Point no está presente, se puede usar cualquier clase con un método main (), o cualquier clase Applet o JavaFX Application en el archivo JAR para iniciar su RIA. El atributo Trusted Only se utiliza para evitar que las clases o recursos no confiables se carguen para un applet o una aplicación. Establezca el valor del atributo en true. Por ejemplo: Este atributo impide que una aplicación o applet privilegiada se vuelva a utilizar con componentes no fiables. Todas las clases y recursos de la aplicación o applet deben estar firmados y solicitar todos los permisos. El atributo Trusted-Library se utiliza para aplicaciones y applets diseñados para permitir componentes no fiables. No se muestra ningún cuadro de diálogo de advertencia y una aplicación o applet puede cargar archivos JAR que contienen clases o recursos no confiables. Establezca el valor del atributo en true. Por ejemplo: Este atributo impide que los componentes de una aplicación o applet privilegiado se vuelvan a utilizar con componentes no fiables. Todas las clases y recursos en un archivo JAR que contenga este atributo manifiesto deben estar firmados y solicitar todos los permisos. En una aplicación o applet de código mixto, todas las clases y recursos privilegiados deben incluirse en archivos JAR que contengan el atributo Trusted-Library. Este atributo se utiliza para las llamadas entre el código Java de código de acceso privilegiado y el código Java. Si tiene código JavaScript que llame al código Java, vea Atributo de la base de código admisible por el llamante. Todos los JAR de la biblioteca de confianza se cargan en un cargador de clases dedicado separado que es exclusivo para la aplicación o la instancia del applet. Este cargador de Biblioteca Confiable es ahora el padre del cargador de clases normal de Inicio Web o de applets. Para compatibilidad con el orden de búsqueda original, ambos cargadores cooperan para implementar una ruta de clase común. De acuerdo con las versiones anteriores, los archivos JAR utilizan descargas perezosas y se abren según sea necesario para encontrar las clases y los recursos solicitados. El código en un archivo JAR que se va a marcar con el atributo de manifiesto Trusted-Library puede necesitar ser modificado ligeramente si utiliza llamadas que dependen de la clase loader, como la versión de un solo parámetro de Class. forName (). Class. getResource (). Y Class. getResourceAsStream (). Algunas variantes de java. util. ResourceBundle. getBundle (). Y cualquier otro método que funcione en relación con sus llamadores inmediatos definiendo el cargador. Sólo es necesario realizar cambios si la clase o recurso solicitado puede encontrarse en un archivo JAR que no sea una Trusted-Library (y, por lo tanto, cargado por el cargador normal de Web Start o applet). Código en una biblioteca de confianza puede buscar el cargador normal invocando Thread. currentThread (). GetContextClassLoader (). Tenga en cuenta, sin embargo, que hay circunstancias excepcionales en las que getContextClassLoader () puede devolver null. Por ejemplo, esto puede suceder cuando el recolector de basura utiliza un subproceso del sistema JRE para invocar el método Object. finalize () de una instancia inalcanzable. Si necesita convertir la clase en Class. getResource () o Class. getResourceAsStream () en sus equivalentes ClassLoader, recuerde ajustar el parámetro de cadena como se describe en la documentación de esos dos métodos. Si el nombre del recurso original comenzó con /. Entonces era un nombre absoluto y el líder / simplemente necesita ser eliminado. De lo contrario, determine si la instancia de clase que fue el destino de la llamada getResource está en un paquete con nombre. Si es una matriz primero debe determinar el tipo de componente subyacente de la matriz. Invoque Class. getName () en la clase o instancia de tipo de componente. Si el nombre de la clase contiene. , Está en un paquete con nombre que tendrá que ser añadido al nombre del recurso original. Determine el nombre del paquete quitando cualquier carácter después, e incluyendo, el final. personaje. A continuación, reemplace cualquier resto. Caracteres con / caracteres. Por último, agregue una cadena de nombres de destino original y agregue la cadena de nombre de recurso original. Esta nueva cadena se puede pasar ahora a la versión de ClassLoader de los métodos getResource () o getResourceAsStream (). Generalmente, se debe tener cuidado para asegurar que el código en la biblioteca de confianza se escribe de una manera cuidadosa y segura y es compatible de otra forma con ser cargado en una instancia separada del cargador de clases de cualquier jarras restantes que son parte de la aplicación y son cargadas por El cargador normal. Información adicional Consulte Combinación de código privilegiado y código de zona de almacenamiento para obtener información sobre el uso de atributos de manifiesto para administrar llamadas desde un código no confiable. Consulte Prevención de RIAs de ser reutilizados para obtener información sobre el uso de atributos de manifiesto para asegurarse de que se utilizan el nivel de permisos y la base de código correctos. Para obtener más información sobre la adición de atributos al archivo de manifiesto de JAR, consulte Modificación de un archivo de manifiesto en el tutorial de Java. Seguridad con atributos de manifiesto Los siguientes atributos de manifiesto de archivo JAR están disponibles para ayudar a garantizar la seguridad de su applet o aplicación Java Web Start. Sólo se requiere el atributo Permisos. El atributo Permisos se utiliza para garantizar que la aplicación sólo solicite el nivel de permisos especificado en la etiqueta de applet o en el archivo JNLP utilizado para invocar la aplicación. Utilice este atributo para evitar que alguien vuelva a implementar una aplicación firmada con su certificado y ejecutándola en un nivel de privilegio diferente. Este atributo es necesario en el manifiesto para el archivo JAR principal. Consulte Atributo de permisos en la plataforma Java, Guía de implementación de Standard Edition para obtener más información. El atributo Codebase se utiliza para garantizar que la base de código del archivo JAR está restringida a dominios específicos. Utilice este atributo para evitar que alguien vuelva a implementar su aplicación en otro sitio web con fines maliciosos. Consulte el atributo de base de código en la plataforma Java, Guía de implementación de Standard Edition para obtener más información. El atributo Application-Name se utiliza para proporcionar el título que se muestra en las solicitudes de seguridad para las aplicaciones firmadas. Consulte Atributo de nombre de aplicación en la plataforma Java, Guía de implementación de Standard Edition para obtener más información. El atributo Application-Library-Allowable-Codebase se utiliza para identificar las ubicaciones en las que se espera encontrar su aplicación. Utilice este atributo para reducir el número de ubicaciones que se muestran en el indicador de seguridad cuando el archivo JAR se encuentra en una ubicación diferente que el archivo JNLP o la página HTML. Consulte Application-Library-Allowable-Codebase Atributo en la Plataforma Java, Guía de implementación de Standard Edition para obtener más información. El atributo Caller-Allowable-Codebase se utiliza para identificar los dominios desde los que el código JavaScript puede realizar llamadas a su aplicación. Utilice este atributo para evitar que el código JavaScript desconocido acceda a su aplicación. Consulte el atributo Caller-Allowable-Codebase en la plataforma Java, Guía de implementación de Standard Edition para obtener más información. El atributo de punto de entrada se utiliza para identificar las clases que se permiten utilizar como puntos de entrada a su RIA. Utilice este atributo para evitar que se ejecute código no autorizado desde otros puntos de entrada disponibles en el archivo JAR. Consulte Atributo de punto de entrada en la plataforma Java, Guía de implementación de Standard Edition para obtener más información. El atributo Trusted Only se utiliza para evitar que se carguen componentes no fiables. Para obtener más información, consulte Atributo de sólo confianza en la Plataforma Java, Guía de implementación de Standard Edition. El atributo Trusted-Library se utiliza para permitir llamadas entre el código Java privilegiado y el código Java de sandbox sin solicitar permiso al usuario. Consulte Atributos de la biblioteca de confianza en la plataforma Java, Guía de implementación de Standard Edition para obtener más información. Consulte Modificación de un archivo de manifiesto para obtener información sobre la adición de estos atributos al archivo de manifiesto. Atributos de manifiesto de archivo JAR para seguridad El manifiesto de archivo JAR contiene información sobre el contenido del archivo JAR, incluida la información de seguridad y configuración. Utilice los atributos de manifiesto descritos en esta sección para mejorar la seguridad de la ejecución de RIA desde un navegador. Agregue los atributos al manifiesto antes de firmar el archivo JAR. Consulte Modificación de un archivo de manifiesto en el tutorial de Java para obtener información sobre la adición de atributos al archivo de manifiesto de JAR. Nota: Estos atributos se aplican a los applets firmados y las aplicaciones de Java Web Start. Estos atributos se ignoran para las aplicaciones Java independientes. Permisos Atributo El atributo Permisos se utiliza para verificar que el nivel de permisos solicitado por el RIA cuando se ejecuta coincide con el nivel de permisos que se estableció cuando se creó el archivo JAR. Este atributo es necesario en el manifiesto del archivo JAR principal para el RIA, los archivos JAR secundarios y las extensiones no se requieren para tener el atributo Permissions. Si el atributo no está presente en el archivo JAR principal, entonces el RIA está bloqueado. Utilice el atributo Permisos para evitar que alguien vuelva a implementar una aplicación firmada con su certificado y ejecutándola con un nivel de privilegio diferente. Establezca este atributo en uno de los siguientes valores: sandbox: indica que el RIA se ejecuta en el entorno limitado de seguridad y no requiere permisos adicionales. All-permissions - Indica que el RIA requiere acceso a los recursos del sistema de los usuarios. Para aplicaciones y subprogramas Java Web Start que utilicen JNLP, el valor del atributo Permissions debe coincidir con el nivel de permisos solicitado en el archivo JNLP o coincidir con el permiso predeterminado si no se solicita ningún nivel de permisos. De lo contrario, se mostrará un error y se bloqueará el RIA. Consulte Estructura del archivo JNLP para obtener información sobre el elemento de seguridad que se utiliza para solicitar el nivel de permisos. Si el elemento no está presente, el nivel de permisos predeterminado es sandbox. Para los applets que no utilizan JNLP, el valor del atributo Permissions debe coincidir con el nivel de permisos solicitado en la etiqueta del applet. De lo contrario, se mostrará un error y se bloqueará el RIA. Si la etiqueta del applet no contiene un nivel de permisos, los applets firmados se ejecutan con el nivel de permisos establecido por el atributo Permissions. Consulte Implementación con la etiqueta del applet para obtener información sobre cómo establecer el nivel de permisos en la etiqueta del applet. Atributo de base de código El atributo de base de código se utiliza para restringir la base de código del archivo JAR a dominios específicos. Utilice este atributo para evitar que alguien vuelva a implementar su aplicación en otro sitio web con fines maliciosos. Nota: Si el atributo Codebase no especifica un servidor seguro, como HTTPS. Existe algún riesgo de que su código pueda ser reutilizado en los esquemas de ataque Man-in-the-Middle (MITM). Establezca este atributo en el nombre de dominio o en la dirección IP donde se encuentra el archivo JAR para la aplicación. También se puede incluir un número de puerto. Para ubicaciones múltiples, separe los valores con un espacio. Un asterisco () se puede utilizar como comodín sólo al principio del nombre de dominio. La siguiente tabla muestra los valores de muestra y lo que coinciden. El valor del atributo Codebase debe coincidir con la ubicación del archivo JAR para el RIA. De lo contrario, se mostrará un error y se bloqueará el RIA. Si el atributo no está presente, se escribe una advertencia en la consola Java y se utiliza la base de código especificada para la etiqueta de applet o el archivo JNLP. Atributo de nombre de aplicación El atributo Nombre de aplicación se utiliza en las solicitudes de seguridad para proporcionar un título para su RIA firmado. Se recomienda el uso de este atributo para ayudar a los usuarios a tomar la decisión de confiar y ejecutar el RIA. El valor puede ser cualquier cadena válida, por ejemplo: Si el atributo Nombre de la aplicación no está presente en el manifiesto del archivo JAR, se escribe una advertencia en la consola Java y se utiliza el valor del atributo Main-Class. Si ninguno de los dos atributos está presente en el manifiesto, no se muestra ningún título en las indicaciones de seguridad. Los títulos no se muestran para los RIA no firmados. Application-Library-Allowable-Codebase Attribute El atributo Application-Library-Allowable-Codebase identifica las ubicaciones donde se espera encontrar su RIA firmado. Este atributo se utiliza para determinar lo que aparece en el campo Ubicación para el indicador de seguridad que se muestra a los usuarios cuando el archivo JAR de su RIA se encuentra en una ubicación diferente que el archivo JNLP o la página HTML que inicia su RIA. Si los archivos no están en las ubicaciones identificadas, el RIA está bloqueado. Establezca este atributo en los dominios donde se encuentran el archivo JAR, el archivo JNLP y la página HTML. Para especificar más de un dominio, separe los dominios por un espacio, por ejemplo: Si el atributo Application-Library-Allowable-Codebase está presente y coincide con la ubicación desde la que se inicia RIA, aparece un único host en el campo Location Para el indicador y la opción para ocultar futuros avisos se proporciona. Si este atributo está presente y se accede a los archivos desde una ubicación no incluida para el atributo, entonces el RIA está bloqueado. Si este atributo no está presente, varios hosts que corresponden a las ubicaciones del archivo JAR y el archivo JNLP o página HTML se enumeran en el campo Ubicación del mensaje. Cuando se muestran varios hosts, al usuario no se le da la opción de ocultar futuras solicitudes. Se recomienda el uso de este atributo para que los archivos para el RIA se accedan sólo desde ubicaciones conocidas. Este atributo no es necesario si el archivo JAR para el RIA se encuentra en la misma ubicación que el archivo JNLP o la página HTML que inicia el RIA. Consulte el atributo de base de código para obtener una descripción de los valores permitidos. Caller-Allowable-Codebase Attribute El atributo Caller-Allowable-Codebase se utiliza para identificar los dominios desde los que el código JavaScript puede realizar llamadas a su RIA sin avisos de seguridad. Establezca este atributo en el dominio que aloja el código JavaScript. Si se realiza una llamada desde código JavaScript que no se encuentra en un dominio especificado por el atributo Caller-Allowable-Codebase, la llamada se bloquea. Para especificar más de un dominio, separe los dominios por un espacio, por ejemplo: Si el atributo Caller-Allowable-Codebase no está presente, las llamadas del código JavaScript a su RIA se bloquean cuando el nivel de seguridad está establecido en High. Que es el predeterminado, o muy alto. Cuando el nivel de seguridad está establecido en Medio. Que no se recomienda, se muestra una advertencia de seguridad y los usuarios tienen la opción de permitir la llamada o bloquear la llamada. Para los RIA no firmados, el código JavaScript que requiere acceso al RIA debe estar en la misma ubicación que el archivo JAR principal de su RIA, de lo contrario, se le pedirá al usuario que permita el acceso. Las solicitudes de seguridad se muestran para cada instancia de classLoader de Applet. Consulte el atributo de base de código para obtener una descripción de los valores permitidos. El atributo Trusted Only se utiliza para evitar que las clases o recursos no confiables se carguen para un applet o una aplicación. Establezca el valor del atributo en true. Por ejemplo: Este atributo impide que una aplicación o applet privilegiada se vuelva a utilizar con componentes no fiables. Todas las clases y recursos de la aplicación o applet deben estar firmados y solicitar todos los permisos. El atributo Trusted-Library se utiliza para aplicaciones y applets diseñados para permitir componentes no fiables. No se muestra ningún cuadro de diálogo de advertencia y una aplicación o applet puede cargar archivos JAR que contienen clases o recursos no confiables. Establezca el valor del atributo en true. Por ejemplo: Este atributo impide que los componentes de una aplicación o applet privilegiado se vuelvan a utilizar con componentes no fiables. Todas las clases y recursos en un archivo JAR que contenga este atributo de manifiesto deben estar firmados y solicitar todos los permisos. En una aplicación o applet de código mixto, todas las clases y recursos privilegiados deben incluirse en archivos JAR que contengan el atributo Trusted-Library. Este atributo se utiliza para las llamadas entre el código Java de código de acceso privilegiado y el código Java. Si tiene código JavaScript que llame al código Java, vea Atributo de la base de código admisible por el llamante. Todos los JAR de la biblioteca de confianza se cargan en un cargador de clases dedicado separado que es exclusivo para la aplicación o la instancia del applet. Este cargador de Biblioteca Confiable es ahora el padre del cargador de clases normal de Inicio Web o de applets. Para compatibilidad con el orden de búsqueda original, ambos cargadores cooperan para implementar una ruta de clase común. De acuerdo con las versiones anteriores, los archivos JAR utilizan descargas perezosas y se abren según sea necesario para encontrar las clases y los recursos solicitados. El código en un archivo JAR que se va a marcar con el atributo de manifiesto Trusted-Library puede necesitar ser modificado ligeramente si utiliza llamadas que dependen de la clase loader, como la versión de un solo parámetro de Class. forName (). Class. getResource (). Y Class. getResourceAsStream (). Algunas variantes de java. util. ResourceBundle. getBundle (). Y cualquier otro método que funcione en relación con sus llamadores inmediatos definiendo cargador. Sólo es necesario realizar cambios si la clase o recurso solicitado puede encontrarse en un archivo JAR que no sea una Trusted-Library (y, por lo tanto, cargado por el cargador normal de Web Start o applet). Código en una biblioteca de confianza puede buscar el cargador normal invocando Thread. currentThread (). GetContextClassLoader (). Tenga en cuenta, sin embargo, que hay circunstancias excepcionales en las que getContextClassLoader () puede devolver null. Por ejemplo, esto puede ocurrir cuando el recolector de elementos no utilizados utiliza un subproceso del sistema JRE para invocar el método Object. finalize () de una instancia inalcanzable. Si necesita convertir la clase en Class. getResource () o Class. getResourceAsStream () en sus equivalentes de ClassLoader, recuerde ajustar el parámetro string como se describe en la documentación de esos dos métodos. Si el nombre del recurso original comenzó con /. Entonces era un nombre absoluto y el líder / simplemente necesita ser eliminado. De lo contrario, determine si la instancia de clase que fue el destino de la llamada getResource está en un paquete con nombre. Si es una matriz primero debe determinar el tipo de componente subyacente de la matriz. Invoque Class. getName () en la clase o instancia de tipo de componente. Si el nombre de la clase contiene. , Está en un paquete con nombre que tendrá que ser añadido al nombre del recurso original. Determine el nombre del paquete quitando cualquier carácter después, e incluyendo, el final. personaje. A continuación, reemplace cualquier resto. Caracteres con / caracteres. Por último, agregue una cadena de nombres de destino original y agregue la cadena de nombre de recurso original. Esta nueva cadena se puede pasar ahora a la versión de ClassLoader de los métodos getResource () o getResourceAsStream (). Generalmente, se debe tener cuidado para asegurar que el código en la biblioteca de confianza se escribe de una manera cuidadosa y segura y es compatible de otra forma con ser cargado en una instancia separada del cargador de clases de cualquier jarras restantes que son parte de la aplicación y son cargadas por El cargador normal. Información adicional Consulte Combinación de código privilegiado y código de zona de almacenamiento para obtener información sobre el uso de atributos de manifiesto para administrar llamadas desde un código no confiable. Consulte Prevención de RIAs de ser reutilizados para obtener información sobre el uso de atributos de manifiesto para asegurarse de que se utilizan el nivel de permisos y la base de código correctos. Para obtener información sobre la adición de atributos al archivo de manifiesto de JAR, consulte Modificación de un archivo de manifiesto en el tutorial de Java.

No comments:

Post a Comment