You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by ka...@apache.org on 2014/01/09 13:47:22 UTC

svn commit: r1556796 - in /db/derby/code/branches/10.6: ./ java/drda/org/apache/derby/drda/ java/drda/org/apache/derby/impl/drda/ java/engine/org/apache/derby/iapi/reference/ java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/ java/testi...

Author: kahatlen
Date: Thu Jan  9 12:47:22 2014
New Revision: 1556796

URL: http://svn.apache.org/r1556796
Log:
DERBY-6438: Explicitly grant SocketPermission "listen" in default server policy

Merged revision 1556368 from 10.7.

Modified:
    db/derby/code/branches/10.6/   (props changed)
    db/derby/code/branches/10.6/java/drda/org/apache/derby/drda/NetworkServerControl.java
    db/derby/code/branches/10.6/java/drda/org/apache/derby/drda/server.policy
    db/derby/code/branches/10.6/java/drda/org/apache/derby/drda/template.policy
    db/derby/code/branches/10.6/java/drda/org/apache/derby/impl/drda/NetworkServerControlImpl.java
    db/derby/code/branches/10.6/java/engine/org/apache/derby/iapi/reference/Property.java
    db/derby/code/branches/10.6/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/GetCurrentPropertiesTest.policy
    db/derby/code/branches/10.6/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/NetworkServerControlApiTest.policy
    db/derby/code/branches/10.6/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/RuntimeInfoTest.policy
    db/derby/code/branches/10.6/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/ServerPropertiesTest.policy
    db/derby/code/branches/10.6/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/SysinfoTest.policy
    db/derby/code/branches/10.6/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/LDAPTests.policy
    db/derby/code/branches/10.6/java/testing/org/apache/derbyTesting/functionTests/util/derby_tests.policy

Propchange: db/derby/code/branches/10.6/
------------------------------------------------------------------------------
  Merged /db/derby/code/branches/10.7:r1556368
  Merged /db/derby/code/branches/10.8:r1556267
  Merged /db/derby/code/branches/10.9:r1556068
  Merged /db/derby/code/trunk:r1553081
  Merged /db/derby/code/branches/10.10:r1554997

Modified: db/derby/code/branches/10.6/java/drda/org/apache/derby/drda/NetworkServerControl.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.6/java/drda/org/apache/derby/drda/NetworkServerControl.java?rev=1556796&r1=1556795&r2=1556796&view=diff
==============================================================================
--- db/derby/code/branches/10.6/java/drda/org/apache/derby/drda/NetworkServerControl.java (original)
+++ db/derby/code/branches/10.6/java/drda/org/apache/derby/drda/NetworkServerControl.java Thu Jan  9 12:47:22 2014
@@ -638,6 +638,15 @@ public class NetworkServerControl{
         System.setProperty( Property.DERBY_SECURITY_HOST, getHostNameForSocketPermission( server ) );
 
         //
+        // Forcibly set the following property so that it will be correctly
+        // substituted into the default policy file. This is the hostname for
+        // SocketPermissions. This is an internal property which customers
+        // may not override.
+        //
+        System.setProperty(Property.DERBY_SECURITY_PORT,
+                           String.valueOf(server.getPort()));
+
+        //
         // Forcibly set the following property. This is the parameter in
         // the Basic policy which points at the directory where the embedded and
         // network codesources. Do not let the customer

Modified: db/derby/code/branches/10.6/java/drda/org/apache/derby/drda/server.policy
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.6/java/drda/org/apache/derby/drda/server.policy?rev=1556796&r1=1556795&r2=1556796&view=diff
==============================================================================
--- db/derby/code/branches/10.6/java/drda/org/apache/derby/drda/server.policy (original)
+++ db/derby/code/branches/10.6/java/drda/org/apache/derby/drda/server.policy Thu Jan  9 12:47:22 2014
@@ -110,6 +110,13 @@ grant codeBase "${derby.install.url}derb
 
   permission java.net.SocketPermission "*", "accept"; 
 
+// Allow the server to listen to the socket on the port specified with the
+// -p option to "NetworkServerControl start" on the command line, or with
+// the portNumber parameter to the NetworkServerControl constructor in the
+// API, or with the property derby.drda.portNumber. The default is 1527.
+  permission java.net.SocketPermission "localhost:${derby.security.port}",
+    "listen";
+
 //
 // Needed for server tracing.
 //

Modified: db/derby/code/branches/10.6/java/drda/org/apache/derby/drda/template.policy
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.6/java/drda/org/apache/derby/drda/template.policy?rev=1556796&r1=1556795&r2=1556796&view=diff
==============================================================================
--- db/derby/code/branches/10.6/java/drda/org/apache/derby/drda/template.policy (original)
+++ db/derby/code/branches/10.6/java/drda/org/apache/derby/drda/template.policy Thu Jan  9 12:47:22 2014
@@ -98,6 +98,14 @@ grant codeBase "${derby.install.url}derb
 
   permission java.net.SocketPermission "*", "accept"; 
 
+// Allow the server to listen to the socket on the default port (1527).
+// If you have specified another port number with the -p option to
+// "NetworkServerControl start" on the command line, or with the portNumber
+// parameter to the NetworkServerControl constructor in the API, or with the
+// property derby.drda.portNumber, you should change the port number in the
+// permission statement accordingly.
+  permission java.net.SocketPermission "localhost:1527", "listen";
+
 //
 // Needed for server tracing.
 //

Modified: db/derby/code/branches/10.6/java/drda/org/apache/derby/impl/drda/NetworkServerControlImpl.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.6/java/drda/org/apache/derby/impl/drda/NetworkServerControlImpl.java?rev=1556796&r1=1556795&r2=1556796&view=diff
==============================================================================
--- db/derby/code/branches/10.6/java/drda/org/apache/derby/impl/drda/NetworkServerControlImpl.java (original)
+++ db/derby/code/branches/10.6/java/drda/org/apache/derby/impl/drda/NetworkServerControlImpl.java Thu Jan  9 12:47:22 2014
@@ -378,6 +378,14 @@ public final class NetworkServerControlI
     public  String  getHost() { return hostArg; }
 
     /**
+     * Get the port where we listen for connections.
+     * @return the port number
+     */
+    public int getPort() {
+        return portNumber;
+    }
+
+    /**
      * Return true if the customer forcibly overrode our decision to install a
      * default SecurityManager.
      */

Modified: db/derby/code/branches/10.6/java/engine/org/apache/derby/iapi/reference/Property.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.6/java/engine/org/apache/derby/iapi/reference/Property.java?rev=1556796&r1=1556795&r2=1556796&view=diff
==============================================================================
--- db/derby/code/branches/10.6/java/engine/org/apache/derby/iapi/reference/Property.java (original)
+++ db/derby/code/branches/10.6/java/engine/org/apache/derby/iapi/reference/Property.java Thu Jan  9 12:47:22 2014
@@ -328,7 +328,7 @@ public interface Property { 
 	String DATABASE_PROPERTIES_ONLY = "derby.database.propertiesOnly";
 
     /**
-     * Ths property is private to Derby.
+     * This property is private to Derby.
      * This property is forcibly set by the Network Server to override
      * any values which the user may have set. This property is only used to
      * parameterize the Basic security policy used by the Network Server.
@@ -337,7 +337,7 @@ public interface Property { 
     public static final String DERBY_INSTALL_URL = "derby.install.url";
 
     /**
-     * Ths property is private to Derby.
+     * This property is private to Derby.
      * This property is forcibly set by the Network Server to override
      * any values which the user may have set. This property is only used to
      * parameterize the Basic security policy used by the Network Server.
@@ -345,6 +345,15 @@ public interface Property { 
      **/
     public static final String DERBY_SECURITY_HOST = "derby.security.host";
 
+    /**
+     * This property is private to Derby.
+     * This property is forcibly set by the Network Server to override
+     * any values which the user may have set. This property is only used to
+     * parameterize the Basic security policy used by the Network Server.
+     * This property is the port number which the server listens to.
+     */
+    public static final String DERBY_SECURITY_PORT = "derby.security.port";
+
 	/*
 	** derby.storage.*
 	*/

Modified: db/derby/code/branches/10.6/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/GetCurrentPropertiesTest.policy
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.6/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/GetCurrentPropertiesTest.policy?rev=1556796&r1=1556795&r2=1556796&view=diff
==============================================================================
--- db/derby/code/branches/10.6/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/GetCurrentPropertiesTest.policy (original)
+++ db/derby/code/branches/10.6/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/GetCurrentPropertiesTest.policy Thu Jan  9 12:47:22 2014
@@ -100,8 +100,9 @@ grant codeBase "${derbyTesting.codejar}d
   
   // accept is needed for the server accepting connections
   // connect is needed for ping command (which is in the server jar)
+  // listen is needed for the server listening on the network port
   permission java.net.SocketPermission "127.0.0.1", "accept,connect";
-  permission java.net.SocketPermission "localhost", "accept,connect";
+  permission java.net.SocketPermission "localhost", "accept,connect,listen";
   permission java.net.SocketPermission "${derbyTesting.clienthost}", "accept,connect";
   permission java.net.SocketPermission "${derbyTesting.serverhost}", "accept,connect";
 
@@ -179,6 +180,9 @@ grant codeBase "${derbyTesting.testjar}d
   permission java.lang.RuntimePermission "setSecurityManager";
   permission java.security.SecurityPermission "getPolicy";
   permission java.lang.RuntimePermission "setIO"; 
+
+  // Needed by NetworkServerTestSetup when probing ports.
+  permission java.net.SocketPermission "localhost", "listen";
 };
 
 //
@@ -205,7 +209,7 @@ grant codeBase "${derbyTesting.codeclass
 
   // combination of client and server side.
   permission java.net.SocketPermission "127.0.0.1", "accept,connect,resolve";
-  permission java.net.SocketPermission "localhost", "accept,connect,resolve";
+  permission java.net.SocketPermission "localhost", "accept,connect,resolve,listen";
   permission java.net.SocketPermission "${derbyTesting.clienthost}", "accept,connect";
   permission java.net.SocketPermission "${derbyTesting.serverhost}", "connect,resolve";
   

Modified: db/derby/code/branches/10.6/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/NetworkServerControlApiTest.policy
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.6/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/NetworkServerControlApiTest.policy?rev=1556796&r1=1556795&r2=1556796&view=diff
==============================================================================
--- db/derby/code/branches/10.6/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/NetworkServerControlApiTest.policy (original)
+++ db/derby/code/branches/10.6/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/NetworkServerControlApiTest.policy Thu Jan  9 12:47:22 2014
@@ -95,8 +95,9 @@ grant codeBase "${derbyTesting.codejar}d
   
   // accept is needed for the server accepting connections
   // connect is needed for ping command (which is in the server jar)
+  // listen is needed for the server listening on the network port
   permission java.net.SocketPermission "127.0.0.1", "accept,connect";
-  permission java.net.SocketPermission "localhost", "accept,connect";
+  permission java.net.SocketPermission "localhost", "accept,connect,listen";
   permission java.net.SocketPermission "${derbyTesting.clienthost}", "accept,connect";
   permission java.net.SocketPermission "${derbyTesting.serverhost}", "accept,connect";
     //tracing testing. NetworkServerControlApiTest
@@ -169,6 +170,9 @@ grant codeBase "${derbyTesting.testjar}d
   permission java.lang.RuntimePermission "setSecurityManager";
   permission java.security.SecurityPermission "getPolicy";
   permission java.lang.RuntimePermission "setIO"; 
+
+  // Needed by NetworkServerTestSetup when probing ports.
+  permission java.net.SocketPermission "localhost", "listen";
 };
 
 //
@@ -192,7 +196,7 @@ grant codeBase "${derbyTesting.codeclass
 
   // combination of client and server side.
   permission java.net.SocketPermission "127.0.0.1", "accept,connect,resolve";
-  permission java.net.SocketPermission "localhost", "accept,connect,resolve";
+  permission java.net.SocketPermission "localhost", "accept,connect,resolve,listen";
   permission java.net.SocketPermission "${derbyTesting.clienthost}", "accept,connect";
   permission java.net.SocketPermission "${derbyTesting.serverhost}", "connect,resolve";
   

Modified: db/derby/code/branches/10.6/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/RuntimeInfoTest.policy
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.6/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/RuntimeInfoTest.policy?rev=1556796&r1=1556795&r2=1556796&view=diff
==============================================================================
--- db/derby/code/branches/10.6/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/RuntimeInfoTest.policy (original)
+++ db/derby/code/branches/10.6/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/RuntimeInfoTest.policy Thu Jan  9 12:47:22 2014
@@ -145,8 +145,9 @@ grant codeBase "${derbyTesting.codejar}d
   
   // accept is needed for the server accepting connections
   // connect is needed for ping command (which is in the server jar)
+  // listen is needed for the server listening on the network port
   permission java.net.SocketPermission "127.0.0.1", "accept,connect";
-  permission java.net.SocketPermission "localhost", "accept,connect";
+  permission java.net.SocketPermission "localhost", "accept,connect,listen";
   permission java.net.SocketPermission "${derbyTesting.clienthost}", "accept,connect";
   permission java.net.SocketPermission "${derbyTesting.serverhost}", "accept,connect";
   // Need to be able to write to trace file for NetworkServerControlApiTest
@@ -250,6 +251,9 @@ grant codeBase "${derbyTesting.testjar}d
   
   // These permissions are needed when testing code instrumented with EMMA.
   permission java.lang.RuntimePermission "${emma.active}writeFileDescriptor";
+
+  // Needed by NetworkServerTestSetup when probing ports.
+  permission java.net.SocketPermission "localhost", "listen";
 };
 
 //
@@ -277,7 +281,7 @@ grant codeBase "${derbyTesting.codeclass
 
   // combination of client and server side.
   permission java.net.SocketPermission "127.0.0.1", "accept,connect,resolve";
-  permission java.net.SocketPermission "localhost", "accept,connect,resolve";
+  permission java.net.SocketPermission "localhost", "accept,connect,resolve,listen";
   permission java.net.SocketPermission "${derbyTesting.clienthost}", "accept,connect";
   permission java.net.SocketPermission "${derbyTesting.serverhost}", "connect,resolve";
   

Modified: db/derby/code/branches/10.6/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/ServerPropertiesTest.policy
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.6/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/ServerPropertiesTest.policy?rev=1556796&r1=1556795&r2=1556796&view=diff
==============================================================================
--- db/derby/code/branches/10.6/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/ServerPropertiesTest.policy (original)
+++ db/derby/code/branches/10.6/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/ServerPropertiesTest.policy Thu Jan  9 12:47:22 2014
@@ -100,8 +100,9 @@ grant codeBase "${derbyTesting.codejar}d
   
   // accept is needed for the server accepting connections
   // connect is needed for ping command (which is in the server jar)
+  // listen is needed for the server listening on the network port
   permission java.net.SocketPermission "127.0.0.1", "accept,connect";
-  permission java.net.SocketPermission "localhost", "accept,connect";
+  permission java.net.SocketPermission "localhost", "accept,connect,listen";
   permission java.net.SocketPermission "${derbyTesting.clienthost}", "accept,connect";
   permission java.net.SocketPermission "${derbyTesting.serverhost}", "accept,connect";
 
@@ -178,6 +179,9 @@ grant codeBase "${derbyTesting.testjar}d
   permission java.lang.RuntimePermission "setSecurityManager";
   permission java.security.SecurityPermission "getPolicy";
   permission java.lang.RuntimePermission "setIO"; 
+
+  // Needed by NetworkServerTestSetup when probing ports.
+  permission java.net.SocketPermission "localhost", "listen";
 };
 
 //
@@ -204,7 +208,7 @@ grant codeBase "${derbyTesting.codeclass
 
   // combination of client and server side.
   permission java.net.SocketPermission "127.0.0.1", "accept,connect,resolve";
-  permission java.net.SocketPermission "localhost", "accept,connect,resolve";
+  permission java.net.SocketPermission "localhost", "accept,connect,resolve,listen";
   permission java.net.SocketPermission "${derbyTesting.clienthost}", "accept,connect";
   permission java.net.SocketPermission "${derbyTesting.serverhost}", "connect,resolve";
   

Modified: db/derby/code/branches/10.6/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/SysinfoTest.policy
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.6/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/SysinfoTest.policy?rev=1556796&r1=1556795&r2=1556796&view=diff
==============================================================================
--- db/derby/code/branches/10.6/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/SysinfoTest.policy (original)
+++ db/derby/code/branches/10.6/java/testing/org/apache/derbyTesting/functionTests/tests/derbynet/SysinfoTest.policy Thu Jan  9 12:47:22 2014
@@ -144,10 +144,12 @@ grant codeBase "${derbyTesting.codejar}d
   
   // accept is needed for the server accepting connections
   // connect is needed for ping command (which is in the server jar)
+  // listen is needed for the server listening on the network port
   permission java.net.SocketPermission "127.0.0.1", "accept,connect";
-  permission java.net.SocketPermission "localhost", "accept,connect";
+  permission java.net.SocketPermission "localhost", "accept,connect,listen";
   permission java.net.SocketPermission "${derbyTesting.clienthost}", "accept,connect";
   permission java.net.SocketPermission "${derbyTesting.serverhost}", "accept,connect";
+
   // Need to be able to write to trace file for NetworkServerControlApiTest
   permission java.io.FilePermission "${user.dir}${/}system${/}trace${/}-", "write"; 
   // Needed for NetworkServerMBean access (see JMX section above)
@@ -255,6 +257,9 @@ grant codeBase "${derbyTesting.testjar}d
   
   //client side: test execs another jvm with relative path
   permission java.io.FilePermission "<<ALL FILES>>", "execute";
+
+  // Needed by NetworkServerTestSetup when probing ports.
+  permission java.net.SocketPermission "localhost", "listen";
 };
 
 //
@@ -286,7 +291,7 @@ grant codeBase "${derbyTesting.codeclass
 
   // combination of client and server side.
   permission java.net.SocketPermission "127.0.0.1", "accept,connect,resolve";
-  permission java.net.SocketPermission "localhost", "accept,connect,resolve";
+  permission java.net.SocketPermission "localhost", "accept,connect,resolve,listen";
   permission java.net.SocketPermission "${derbyTesting.clienthost}", "accept,connect";
   permission java.net.SocketPermission "${derbyTesting.serverhost}", "connect,resolve";
   

Modified: db/derby/code/branches/10.6/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/LDAPTests.policy
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.6/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/LDAPTests.policy?rev=1556796&r1=1556795&r2=1556796&view=diff
==============================================================================
--- db/derby/code/branches/10.6/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/LDAPTests.policy (original)
+++ db/derby/code/branches/10.6/java/testing/org/apache/derbyTesting/functionTests/tests/jdbcapi/LDAPTests.policy Thu Jan  9 12:47:22 2014
@@ -135,8 +135,9 @@ grant codeBase "${derbyTesting.codejar}d
   
   // accept is needed for the server accepting connections
   // connect is needed for ping command (which is in the server jar)
+  // listen is needed for the server listening on the network port
   permission java.net.SocketPermission "127.0.0.1", "accept,connect";
-  permission java.net.SocketPermission "localhost", "accept,connect";
+  permission java.net.SocketPermission "localhost", "accept,connect,listen";
   permission java.net.SocketPermission "${derbyTesting.clienthost}", "accept,connect";
   permission java.net.SocketPermission "${derbyTesting.serverhost}", "accept,connect";
 
@@ -235,6 +236,9 @@ grant codeBase "${derbyTesting.testjar}d
 
   // resolve is needed to run ldap related tests
   permission java.net.SocketPermission "${derbyTesting.ldapServer}", "connect, resolve";
+
+  // Needed by NetworkServerTestSetup when probing ports.
+  permission java.net.SocketPermission "localhost", "listen";
 };
 
 //
@@ -255,7 +259,7 @@ grant codeBase "${derbyTesting.codeclass
 
   // combination of client and server side.
   permission java.net.SocketPermission "127.0.0.1", "accept,connect,resolve";
-  permission java.net.SocketPermission "localhost", "accept,connect,resolve";
+  permission java.net.SocketPermission "localhost", "accept,connect,resolve,listen";
   permission java.net.SocketPermission "${derbyTesting.clienthost}", "accept,connect";
   permission java.net.SocketPermission "${derbyTesting.serverhost}", "connect,resolve";
 

Modified: db/derby/code/branches/10.6/java/testing/org/apache/derbyTesting/functionTests/util/derby_tests.policy
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.6/java/testing/org/apache/derbyTesting/functionTests/util/derby_tests.policy?rev=1556796&r1=1556795&r2=1556796&view=diff
==============================================================================
--- db/derby/code/branches/10.6/java/testing/org/apache/derbyTesting/functionTests/util/derby_tests.policy (original)
+++ db/derby/code/branches/10.6/java/testing/org/apache/derbyTesting/functionTests/util/derby_tests.policy Thu Jan  9 12:47:22 2014
@@ -145,10 +145,12 @@ grant codeBase "${derbyTesting.codejar}d
   
   // accept is needed for the server accepting connections
   // connect is needed for ping command (which is in the server jar)
+  // listen is needed for the server listening on the network port
   permission java.net.SocketPermission "127.0.0.1", "accept,connect";
-  permission java.net.SocketPermission "localhost", "accept,connect";
+  permission java.net.SocketPermission "localhost", "accept,connect,listen";
   permission java.net.SocketPermission "${derbyTesting.clienthost}", "accept,connect";
   permission java.net.SocketPermission "${derbyTesting.serverhost}", "accept,connect";
+
   // Need to be able to write to trace file for NetworkServerControlApiTest
   permission java.io.FilePermission "${user.dir}${/}system${/}trace", "write"; 
   permission java.io.FilePermission "${user.dir}${/}system${/}trace${/}-", "write"; 
@@ -251,6 +253,9 @@ grant codeBase "${derbyTesting.testjar}d
   
   // These permissions are needed when testing code instrumented with EMMA.
   permission java.lang.RuntimePermission "${emma.active}writeFileDescriptor";
+
+  // Needed by NetworkServerTestSetup when probing ports.
+  permission java.net.SocketPermission "localhost", "listen";
 };
 
 //
@@ -278,7 +283,7 @@ grant codeBase "${derbyTesting.codeclass
 
   // combination of client and server side.
   permission java.net.SocketPermission "127.0.0.1", "accept,connect,resolve";
-  permission java.net.SocketPermission "localhost", "accept,connect,resolve";
+  permission java.net.SocketPermission "localhost", "accept,connect,resolve,listen";
   permission java.net.SocketPermission "${derbyTesting.clienthost}", "accept,connect";
   permission java.net.SocketPermission "${derbyTesting.serverhost}", "connect,resolve";