JDK 1.2 Changes Everything
In JDK 1.2, Java's security model has changed a great deal, and becomes far more complex in an effort to provide programmers and administrators much needed finer-grained control over security. I can't begin to do the new security features justice here; see http:// java.sun.com/products/jdk1.2/docs/guide/ security/index.html for the current specification.
One surprise is that the method I based my smartSM class on, SecurityManager.classDepth() is deprecated in JDK 1.2 beta 4. Sun confirmed that it is indeed deprecated, but says it won't be disappearing for quite some time. Sun is deprecating this method because it's normally used to find the absolute class depth of an untrusted class, and this number is then used with a heuristic to pass judgment on the code's actions. For example, if the call stack depth of the untrusted class is less than two, then the operation is disallowed, since the call is being made directly by untrusted code. If it's greater than two, it's allowed, with the assumption that it came from trusted code that was called by the untrusted codes. See Scott Oaks's Java Security (O'Reilly & Associates, 1998, ISBN 1-56592-403-7) for a more complete description of this situation and the problems it implies, as well as the changes to the JDK 1.2 security model.
-- L.G.
Copyright © 1999, Dr. Dobb's Journal