[rfc][icedtea-web] policytool in itweb-settings

Andrew Azores aazores at redhat.com
Tue Jan 14 10:16:13 PST 2014

On 01/14/2014 10:34 AM, Jiri Vanek wrote:
> On 01/14/2014 03:16 PM, Jacob Wisor wrote:
>> On 01/14/2014 01:42 PM, Jiri Vanek wrote:
>>> On 01/14/2014 12:33 AM, Jacob Wisor wrote:
>>>> Hello there!
>>>> On 01/13/2014 11:20 PM, Andrew Azores wrote:
>>>>> Hi,
>>>>> This small patch hooks the JDK policytool into itweb-settings. It 
>>>>> can then be
>>>>> used to set up a custom user-level JNLP policy - this, in 
>>>>> combination with the
>>>>> Run in Sandbox patch, will allow for quite a lot more flexibility 
>>>>> in how
>>>>> permissions are handled with signed applets/applications.
>>>>> A nicer, more user-friendly editor to replace the policytool will 
>>>>> hopefully come
>>>>> later on.
>>>> Oooooooh yes, please! This would be awesome! :-)
>>> Yes this would be :))
>>> But it is different task. And Quite complex. Especially it must pass 
>>> upstream
>>> (openjdk). And that is *the* task!
>> Well, it does not need to replace or displace OpenJDK's policytool. 
>> It should be probably enough
>> that it complements it. ;-) You know, it's neither forbidden nor 
>> against any spec to build
>> augmenting tools around OpenJDK.
> But still contribute to Openjdk itself is the right thing to do.
> ...
>> At first, I thought that the problem would rather be that some system 
>> configurations may be missing
>> a PATH environment variable entry to policytool and thus launching it 
>> may fail. But, Jiri is right.
>> The best approach here would probably be to call directly into 
>> policytool's main() method with
>> user.home as its current working directory. policytool is part of 
>> rt.jar, not tools.jar, so it
>> should already be on bootclasspath. But, you may have to investigate 
>> deeper into it because the
> Great!
> But I doubt "with  user.home as its current working directory" is 
> possible.
> Or do we misunderstand each other?
> I had in my mind simple PolicyTool.main(arg,aerg,arg) call in 
> itw-settings.
>> package names of some tools have changed from OpenJDK 6 over to 
>> OpenJDK 7.
> I doubt policy tool was touched in last 10 years ;)
> J.

New patches attached. There are two testcases in the included reproducer 
- one tests to ensure that without a custom policy, unsigned applets 
can't read user.home from the system properties. The other testcase 
installs a custom policy allowing just that, and then ensures that all 
the same applets are now able to perform this action. And of course 
there's some backup/cleanup stuff going on in BeforeClass/AfterClass 
methods in the tests as well.

The actual PolicyPanel is now launching the PolicyTool by invoking its 
main method, rather than exec'ing a new process. I've put this into a 
new thread, but tbh I'm not sure if that was entirely necessary. The 
"View Policy" button has a tooltip now that indicates the location of 
the file that will be opened, although this is also displayed in the 
policytool itself if you launch it. The View Button's action listener is 
no longer an anonymous inner class, since I don't really mind the style 
either way personally. Its implementation does have an anonymous inner 
Runnable inside its Thread, though. Oh, and there's also now an error 
dialog if for some reason the policy file can't be opened (eg it exists 
but you don't have read permission, or it exists but is a directory, or 
whatever). If the file doesn't already exist then we attempt to create a 
blank one there first, since the PolicyTool itself doesn't seem to do this.

Oh, and I've left the PolicyPanel as public and non-final, just because 
that's how the rest of the ControlPanel components are. It could very 
well be given default visibility and made final, but I think it might as 
well just be left the same as the rest of the code there.


Andrew A

-------------- next part --------------
A non-text attachment was scrubbed...
Name: custom_policy2.patch
Type: text/x-patch
Size: 9034 bytes
Desc: not available
Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20140114/95371995/custom_policy2-0001.patch 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: reproducers.patch
Type: text/x-patch
Size: 25434 bytes
Desc: not available
Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20140114/95371995/reproducers-0001.patch 

More information about the distro-pkg-dev mailing list