RFR 8153545: sun/security/pkcs11/Provider/Login.sh fails on Linux
Artem Smotrakov
artem.smotrakov at oracle.com
Mon Apr 11 17:33:53 UTC 2016
Hi Max,
The policy files already have SecurityPermission
"putProviderProperty.*", PKCS11Test class is quite complex.
PKCS11Test needs to be run without specifying -Djava.secutity.manager.
In PKCS11Test.main(), if args[0] is "sm", then the class enables a
security manager right before actual test cases run (it was done to
avoid granting lots of permissions because PKCS11Tests does some work
before actual test cases run).
http://hg.openjdk.java.net/jdk9/dev/jdk/file/bb8379287f37/test/sun/security/pkcs11/PKCS11Test.java#l156
...
try {
if (enableSM) {
System.setSecurityManager(new SecurityManager());
}
long start = System.currentTimeMillis();
System.out.printf(
"Running test with provider %s (security manager
%s) ...%n",
p.getName(), enableSM ? "enabled" : "disabled");
...
http://hg.openjdk.java.net/jdk9/dev/jdk/file/bb8379287f37/test/sun/security/pkcs11/PKCS11Test.java#l182
...
public static void main(PKCS11Test test, String[] args) throws
Exception {
if (args != null) {
if (args.length > 0 && "sm".equals(args[0])) {
test.enableSM = true;
}
if (test.enableSM) {
System.setProperty("java.security.policy",
(args.length > 1) ? BASE + SEP + args[1]
: DEFAULT_POLICY);
}
}
...
It also overrides "java.security.policy" if a security manager is set.
If there is no args[1] element, it sets it as DEFAULT_POLICY which
doesn't exist for this test. As a result, a wrong policy is used, and
ACE occurs. That's why correct policy file name should be passed in args[1].
Artem
On 04/09/2016 01:46 AM, Wang Weijun wrote:
> Hi Amanda,
>
> This is better.
>
> On the other hand, I read the bug report and am not sure if this is the correct way to fix it. Maybe the ("java.security.SecurityPermission" "putProviderProperty.SunDeploy-MozillaJSS") permission should be granted? Or maybe this is a source bug? Artem reported that the problem is only on linux-x86. It's better we get a consistent behavior across platforms.
>
> Thanks,
> Max
>
>> On Apr 9, 2016, at 8:20 AM, Amanda Jiang <amanda.jiang at oracle.com> wrote:
>>
>> Hi Max,
>>
>> Thanks for reviewing, you are right, "sm" should be the correct argument.
>> I updated the test argument and PKCS11Test, please check the new webrev:
>> http://cr.openjdk.java.net/~amjiang/8153545/webrev.02/
>>
>> Thanks,
>> Amanda
>>
>> On 16/4/8 上午12:28, Wang Weijun wrote:
>>> Hi Amanda
>>>
>>> I am not familiar with the tests, but it looks like the 1st args argument should be "sm" [1] to enable the security manager, not "true".
>>>
>>> If PKCS11Test always uses args as command and optional argument(s), maybe you should throw an exception if the command is unknown.
>>>
>>> Thanks
>>> Max
>>>
>>> [1] http://hg.openjdk.java.net/jdk9/dev/jdk/file/cac52c9da800/test/sun/security/pkcs11/PKCS11Test.java#l184
>>>
>>>
>>>> On Apr 8, 2016, at 1:09 PM, Amanda Jiang <amanda.jiang at oracle.com> wrote:
>>>>
>>>> Hi All,
>>>>
>>>> Please help to review following changeset which fixes test bug for sun/security/pkcs11/Provider/Login.sh and another similar failed test.
>>>>
>>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8153545
>>>> Changest: http://cr.openjdk.java.net/~amjiang/8153545/webrev.01/
>>>>
>>>> Thanks,
>>>> Amanda
More information about the security-dev
mailing list