Since this requires access control, shades of trust currently are not available even though code signing is. As it currently stands in JDK 1.1.1, Java applets are either completely trusted or completely untrusted. A signed applet marked as trusted is allowed to escape the sandbox completely. Such an applet can do anything at all and has no security restrictions. The main problem with Java's approach to security is that it is complicated.
Complicated systems tend to have more flaws than simple systems.
Security researchers, most notably Princeton's Secure Internet Programming team, have found several serious security flaws in early versions of the sandbox. Many of these flaws were implementation errors, but some were specification errors. Fortunately, JavaSoft, Netscape, and Microsoft have been very quick to fix such problems when they are discovered. They took this as evidence that Java would never again suffer from security problems. They jumped the gun.