> On 6 May 2019, at 23:55, Martin Buchholz <marti...@google.com> wrote:
> 
> 
> 
> On Thu, May 2, 2019 at 2:28 AM Daniel Fuchs <daniel.fu...@oracle.com 
> <mailto:daniel.fu...@oracle.com>> wrote:
> 
> 1. IPSupport needs to read system properties, attempts
>     to bind sockets etc... I wonder how that might interact
>     with tests that use a security manager, as some of these
>     operations may throw a SecurityException.
>     Maybe some double checking would be in order for those.
> 
> Reading system properties is such a common operation that test library code 
> should simply rely on the security manager allowing it.  Yes, it is sometimes 
> useful to have a DraconianSecurityManager in a test, including one that 
> disallows System.getProperty (I've written such a test myself!) but then the 
> use of that security manager should be scoped to a limited operation that 
> includes no test library code, as in 
> 
>     /**
>      * Runs Runnable r with a security policy that permits precisely
>      * the specified permissions.  If there is no current security
>      * manager, a temporary one is set for the duration of the
>      * Runnable.  We require that any security manager permit
>      * getPolicy/setPolicy.
>      */
>     public void runWithSecurityManagerWithPermissions(Runnable r,
>                                                       Permission... 
> permissions) {
> 
> The same argument might apply to socket operations as well.


Right. It applies to socket operations also.

While I don't disagree with Martin, and it is a little cumbersome to
use test library code in combination with a security manager and a
fine-grained policy set in the jtreg @run tag, it should still work. For
example, the use of jdk.test.lib.net.SimpleSSlContext in one of the HTTP
Client tests [1] [2] [3].

It is almost trivial to add the appropriate privileged blocks to
IPSupport.
  
http://cr.openjdk.java.net/~chegar/8220673/webrev.01_draft/test/lib/jdk/test/lib/net/IPSupport.java.html
  
We should just to it while here to avoid any small / trivial tests that
may want to set a security manager using jtreg's support, from even
considering writing their own version of IPSupport.

-Chris.  

[1] 
https://hg.openjdk.java.net/jdk/jdk/file/1dc9bf9d016b/test/jdk/java/net/httpclient/AsFileDownloadTest.java#l40
[2] 
https://hg.openjdk.java.net/jdk/jdk/file/1dc9bf9d016b/test/jdk/java/net/httpclient/AsFileDownloadTest.policy#l24
[3] 
https://hg.openjdk.java.net/jdk/jdk/file/1dc9bf9d016b/test/lib/jdk/test/lib/net/SimpleSSLContext.java#l54

Reply via email to