(the following on a purely theoretical level, ignoring pesky technical issues)
Does it really make sense to put the allow/deny queries before the app has even started? This is exactly the kind of clunky user-unfriendly experience which people have grown to hate about existing applet/webstart security model. At the point where the user is asked to make a decision they don’t know what they’re granting permissions for - they don’t have enough data to make an informed decision. IMHO they should be asked when the app actually tries to use the functionality, when they know the context it’ll be used in.
Example:
- user goes to webpage
- applet loads, security dialog says “grant access to printer? y/n”
- user gets scared, says no, or just navigates away completely.
vs. - user goes to webpage
- applet starts up, user happily clicks around, paints pretty picture
- user clicks “print”
- security dialog “grant access to printer?”
- user is fine with dialog, since they initiated the whole process, clicks yes
The important thing about the above is that the average case of the user who turns up, makes a bit of a picture but doesn’t want to print it never sees a scary security dialog.
Asking at start up makes even less sense when an app wants multiple permissions. If you load an applet and the first thing it asks is “grant access to hard drive”, “grant access to network”, “grant access to printer”, “grant access to bank account” then they’re going to run a mile. But if permissions are asked individually as required by the app then it’s generally a much smoother and less scary experience.
As a side bonus, if you ask the user and they refuse then app code can catch the security exception (or similar) and provide a helpful message to the user (“We noticed you refused access to the hard drive. This means your preferences won’t be stored”). Again this reduces scariness and makes the experience smoother without compromising security.