RFR: 8319332: Security properties files inclusion [v7]
Martin Balao
mbalao at openjdk.org
Fri Apr 19 08:09:00 UTC 2024
On Wed, 17 Apr 2024 14:30:02 GMT, Weijun Wang <weijun at openjdk.org> wrote:
>> Francisco Ferrari Bihurriet has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 11 commits:
>>
>> - Merge 'openjdk/master' into JDK-8319332
>> - Merge 'openjdk/master' into JDK-8319332
>>
>> Conflict in ConfigFileTest.java solved by keeping our file, which had
>> been previously adjusted.
>>
>> Commands:
>> git merge upstream/master
>> git restore --ours -- test/jdk/java/security/Security/ConfigFileTest.java
>> git add test/jdk/java/security/Security/ConfigFileTest.java
>> git merge --continue
>> - 8319332: Adjust code for JDK-8319673 changes
>>
>> JDK-8319673: Few security tests ignore VM flags
>>
>> Next, we will merge the openjdk/master branch and ignore the conflict in
>> this file.
>>
>> Co-authored-by: Martin Balao <mbalao at redhat.com>
>> Co-authored-by: Francisco Ferrari Bihurriet <fferrari at redhat.com>
>> - 8319332: Update copyright and ConfigFileTest.java.
>>
>> Bump copyright year to 2024 in all the modified files.
>>
>> Remove leaked host name from children JVMs debug command.
>>
>> Extract Executor::addSystemPropertiesAsJvmArgs from Executor::execute
>> and rename 'allJvmArgs' to 'command'. Also split class name and
>> RUNNER_ARG addition to 'command' as two separated command.add() calls.
>>
>> Co-authored-by: Martin Balao <mbalao at redhat.com>
>> Co-authored-by: Francisco Ferrari Bihurriet <fferrari at redhat.com>
>> - Merge 'openjdk/master' into JDK-8319332
>> - 8319332: Fix corner-case regression with bash pipe
>>
>> Extra properties files provided through bash pipes used to work before
>> this enhancement, restore their behaviour.
>>
>> Also take advantage to use Files::isRegularFile, Files::isDirectory and
>> Files::exists APIs instead of converting from Path to File.
>>
>> Linux reproducers (sub-shell, stdin, and combination of both):
>>
>> java -XshowSettings:security:properties \
>> -Djava.security.properties==<(echo name=value) \
>> -Djava.security.debug=properties -version
>>
>> echo name=value | java -XshowSettings:security:properties \
>> -Djava.security.properties==/dev/stdin \
>> -Djava.security.debug=properties -version
>>
>> echo name=value | java -XshowSettings:security:properties \
>> -Djava.security.properties==<(echo include /dev/stdin) \
>> -Djava.security.debug=properties...
>
> src/java.base/share/classes/java/security/Security.java line 256:
>
>> 254: } else if (Files.isDirectory(path)) {
>> 255: throw new IOException("Is a directory");
>> 256: } else {
>
> When would this happen?
This would happen if pointing to a directory from the _include_ directive or the `java.security.properties` System property (either with a local path or a file-based URL). For the `java.security.properties` case, pointing to a directory with a URL prefixed by `file://` was leading to unexpected and wrong results before.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/16483#discussion_r1571995378
More information about the security-dev
mailing list