Protection Domains
A
protection
domain is a grouping of a code source
and permissions -- that is, a protection domain represents all the
permissions that are granted to a particular code source. In terms of
the policy files that we looked at in Chapter 2, a
protection domain is one grant entry. A protection domain is an
instance of the ProtectionDomain class
(java.security.ProtectionDomain
) and is constructed as follows:
- public ProtectionDomain(CodeSource cs, PermissionCollection p)
Construct a protection domain based on the given code source and set of permissions.
When associated with a class, a protection domain means that the given class was loaded from the site specified in the code source, was signed by the public keys specified in the code source, and should have permission to perform the set of operations represented in the permission collection object. Each class in the virtual machine may belong to one and only one protection domain, which is set by the class loader when the class is defined.
However, not all class loaders have a specific protection domain associated with them: the class loader that loads the core Java API does not specify a protection domain. We can think of these core classes as belonging to the system protection domain.
There are three utility methods of the
ProtectionDomain class:
- public CodeSource getCodeSource( )
Return the code source that was used to construct this protection domain.
- public PermissionCollection getPermissions( )
Return the permission ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access