The Open JDK regards the Java Security Manager as a large, brittle piece of code whose further maintenance costs too much. In some imminent release, the JVM will remove the Security Manager. See https://openjdk.java.net/jeps/411, https://issues.apache.org/jira/browse/DERBY-7110, and https://issues.apache.org/jira/browse/DERBY-7126.

For Derby, the Security Manager provides important defenses against the mis-use of the following security-sensitive operations:

o Reading and setting of system properties.

o Creation of class loaders.

o File access

o Network access

o De-registration of JDBC drivers

In preparation for the 10.16.1 release, I asked the Open JDK security team for advice. How should Derby users protect these operations on a future JVM which no longer includes the Security Manager? I asked for guidance in a security-...@openjdk.java.net email thread titled "protecting security-sensitive operations on multi-tenant servers." The security team said:

1) The Security Manager was the wrong solution to this problem.

2) The better, modern solution would be to isolate your application inside an operating system container.

This seems to be the situation: In some future release, we will need to remove all references to the Security Manager and we will need to tell users to containerize their applications.

I'm happy to rototill away references to the Security Manager and update the Security Guide accordingly. I estimate that this will take about a month. My preference would be to delay the 10.16.1 release until this is done. However, there may be some reason to produce a 10.16.1 release first (the last release which uses the Security Manager) and introduce this change in 10.17.1.

What are your thoughts?

-Rick

Reply via email to