RFR: 8338536: Permanently disable remote code downloading in JNDI [v5]
Daniel Fuchs
dfuchs at openjdk.org
Wed Nov 20 16:34:22 UTC 2024
On Wed, 20 Nov 2024 16:25:56 GMT, Aleksei Efimov <aefimov at openjdk.org> wrote:
>> This PR permanently disable remote code downloading in JNDI/LDAP and JNDI/RMI JDK providers, and contains the following changes:
>> - The following two properties are removed:
>> - `com.sun.jndi.ldap.object.trustURLCodebase`
>> - `com.sun.jndi.rmi.object.trustURLCodebase`
>> - JNDIs object factories logic has been altered to make it possible to reconstruct object factories from remote locations when a custom [ObjectFactoryBuilder](https://docs.oracle.com/en/java/javase/23/docs/api/java.naming/javax/naming/spi/ObjectFactoryBuilder.html) is assigned via the [NamingManager#setObjectFactoryBuilder](https://docs.oracle.com/en/java/javase/23/docs/api/java.naming/javax/naming/spi/NamingManager.html#setObjectFactoryBuilder(javax.naming.spi.ObjectFactoryBuilder)) API.
>> - The `NamingManager` class-level documentation is edited to remove references to the `SecurityManager`. It was also revised to clarify a reconstruction mechanism of object factories from remote references in the presence of a custom `ObjectFactoriesBuilder`.
>> - Also, the modified classes have been cleaned-up from `SecurityManager`, `doPrivildged`, and `AccessController` usages.
>>
>> These changes require a CSR that will be submitted soon.
>>
>> ### Testing
>> - Added a new test to check if NamingManager#setObjectFactoryBuilder can be used to implement remote code downloading: `test/jdk/com/sun/jndi/rmi/registry/objects/ObjectFactoryBuilderCodebaseTest.java`
>> - `jdk-tier1` to `jdk-tier3` and other JNDI LDAP/RMI tests show no issue with the proposed changes.
>
> Aleksei Efimov has updated the pull request incrementally with one additional commit since the last revision:
>
> change jdk.naming.rmi per Daniel's suggestion
src/jdk.naming.rmi/share/classes/module-info.java line 64:
> 62: * location} specified in the reference can be supported by a custom implementation of {@link
> 63: * javax.naming.spi.ObjectFactoryBuilder}. If a location is specified, then
> 64: * unless an {@link javax.naming.spi.ObjectFactoryBuilder} is installed a
Minor: I think you need:
unless an {@link javax.naming.spi.ObjectFactoryBuilder ObjectFactoryBuilder}
to avoid the uncertainty about whether this would be rendered as "an javax...." or "an Object..."
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/22154#discussion_r1850636984
More information about the core-libs-dev
mailing list