- All Known Implementing Classes:
- HasAssociatedIndividual, HasPermission, HasPermissionSet, HasProfile, HasProxyEditingRights, IsBlacklisted, IsRootUser, IsUser, RoleIdentifier
public interface Identifier
Indicates who the user is and what roles/groups they belong to.
The objects returned by this could be anything. For example, RoleBacedPolicy
looks for RoleBacedPolicy.AuthRole objects.
This is a marker interface to indicate that a object is an identifier,
implementations of Identifier may provide any sort of identifying functionality or
methods.
Justification for a methodless interface
This is better than using Object since having method signatures that have
Identifier at least indicates the intent of the parameter, even if it is the
same to the compiler.
Policy objects are expected to examine the IdentiferBundle to find the
information needed to make a decision. There is no set pattern as to
what will and will not be a configuration of Identifiers that will create
a AUTHORIZED decision. Reflection, Pattern Matching or something similar
will be needed.
We have no compile time information about what will structures will map
to which Authorization, let's not pretend that we do.