We also briefly touch on the notion of stack inspection, which is the way JDK 1.2 actually makes access control decisions behind the scenes. If you know and trust that person or organization, you may choose to trust the code they vouch for. JDK 1.1 introduced the notion of signed applets to Java. In fact, the distinction between applets and applications no longer applies in Java. The new way of thinking about mobile code is in terms of trust.
Untrusted code needs to be restricted.
Completely trusted code does not. The binary trust model designed into JDK 1.1 is not sufficiently powerful for many needs. In JDK 1.1, applet code signed by a trusted party can be treated as trusted local code, but not as partially trusted code. There is no notion of access control beyond the one and only trust decision made per class. When combined with access control, code-signing allows Java applets to step outside the security sandbox gradually.