[jdk17] RFR: 8268349: Provide clear run-time warnings about Security Manager deprecation [v5]
Jaikiran Pai
jpai at openjdk.java.net
Fri Jun 18 02:33:28 UTC 2021
On Thu, 17 Jun 2021 17:21:04 GMT, Weijun Wang <weijun at openjdk.org> wrote:
>> More loudly and precise warning messages when a security manager is either enabled at startup or installed at runtime.
>>
>> This is new PR for the `openjdk/jdk17` repo copied from https://github.com/openjdk/jdk/pull/4400. A new commit is added.
>
> Weijun Wang has updated the pull request incrementally with one additional commit since the last revision:
>
> verbose warning message test and renaming in System.java
src/java.base/share/classes/java/lang/System.java line 381:
> 379: if (allowSecurityManager()) {
> 380: var caller = Reflection.getCallerClass();
> 381: String signature = caller.getName() + " (" + codeSource(caller) + ")";
Hello Weijun,
Given that the `codeSource()` method above is allowed to return `null`, there could be a case where the warning message printed would be something like:
>
> WARNING: A terminally deprecated method in java.lang.System has been called
> WARNING: System::setSecurityManager has been called by foo.bar.Hello (null)
> WARNING: Please consider reporting this to the maintainers of foo.bar.Hello
> WARNING: System::setSecurityManager will be removed in a future release
>
Would that be OK or do you think the presence of "(null)" be unnecessary and confusing? Maybe in such cases that line should just say "System::setSecurityManager has been called by foo.bar.Hello"?
Another minor nit - the variable is named `signature` which initially gave me an impression that it was the method signature of the caller code, but that isn't the case. Should this variable be renamed perhaps?
-------------
PR: https://git.openjdk.java.net/jdk17/pull/13
More information about the security-dev
mailing list