A method and apparatus for implementing a new Permission for methods that
perform callback operations are provided. The method and apparatus
provide an AdoptPermission Permission type that allows a method to pass a
Java 2 authorization test without having the specific required
Permissions expressly granted to the method and without the method having
the AllPermission Permission granted to it. With the apparatus and
method, an AdoptPermission Permission type is defined that operates to
allow a ProtectionDomain to "adopt" a required Permission. However, this
adoption of a required Permission can only be performed if the
ProtectionDomain of at least one method in the thread stack has been
granted a Permission that implies the required Permission. Thus, the
AdoptPermission Permission type provides an intermediate mechanism that
is not as over-inclusive as the AllPermission Permission type and is not
as under-inclusive as requiring that all methods in the thread stack
include the required Permission expressly granted to them.