Running under the security manager and strictly specified policies is an effectively way of ensuring your application is executing fairly strict boundaries. Jetty has native support for executing under this standard jdk security model with a few additional benefits. See Policy Implementation and Permissions for specific details on how this works within java itself.
Jetty Startup w/JettyPolicy
> java -jar start.jar --secure
This will start up Jetty using the custom org.eclipse.jetty.policy.JettyPolicy implementation for loading and processing policy files, and install a security manager early before the Jetty server starts to bootstrap itself up through the XMLConfiguration mechanism.
Some features of using the JettyPolicy are currently:
- specification of multiple policy files (via start.config)
- automatic reloading of policies (enabled via -Dorg.eclipse.jetty.policy.RELOAD=true variable)
Typical JVM Startup w/standard policy
> java -Djava.security.manager -Djava.security.policy=lib/policy/jetty.policy -jar start.jar
This is the standard JDK mechanism for starting up the JVM with the policy and security manager in place. Note that different policy parsers are more forgiving then others, for instance the one in the standard jvm violently enforces the ; ending permission declarations while the one in harmony which the JettyPolicy itself is based off is more permissive.