public class ConditionalPermissionAdminImpl extends java.lang.Object implements ConditionalPermissionAdmin
| Modifier and Type | Field and Description |
|---|---|
static java.lang.String |
SPEC_VERSION |
| Constructor and Description |
|---|
ConditionalPermissionAdminImpl(org.knopflerfish.framework.permissions.ConditionalPermissionInfoStorage cpis,
org.knopflerfish.framework.permissions.PermissionInfoStorage pis,
FrameworkContext framework) |
| Modifier and Type | Method and Description |
|---|---|
ConditionalPermissionInfo |
addConditionalPermissionInfo(ConditionInfo[] conds,
PermissionInfo[] perms)
Create a new Conditional Permission Info.
|
java.security.AccessControlContext |
getAccessControlContext(java.lang.String[] signers)
Returns the Access Control Context that corresponds to the specified
signers.
|
ConditionalPermissionInfo |
getConditionalPermissionInfo(java.lang.String name)
Return the Conditional Permission Info with the specified name.
|
java.util.Enumeration<ConditionalPermissionInfo> |
getConditionalPermissionInfos()
Returns the Conditional Permission Infos that are currently managed by
Conditional Permission Admin.
|
ConditionalPermissionInfo |
newConditionalPermissionInfo(java.lang.String encoded)
Creates a new
ConditionalPermissionInfo from the specified
encoded ConditionalPermissionInfo string suitable for insertion
into a ConditionalPermissionUpdate. |
ConditionalPermissionInfo |
newConditionalPermissionInfo(java.lang.String name,
ConditionInfo[] conditions,
PermissionInfo[] permissions,
java.lang.String access)
Creates a new ConditionalPermissionInfo with the specified fields
suitable for insertion into a
ConditionalPermissionUpdate. |
ConditionalPermissionUpdate |
newConditionalPermissionUpdate()
Creates a new update for the Conditional Permission Table.
|
ConditionalPermissionInfo |
setConditionalPermissionInfo(java.lang.String name,
ConditionInfo[] conds,
PermissionInfo[] perms)
Set or create a Conditional Permission Info with a specified name.
|
public static final java.lang.String SPEC_VERSION
public ConditionalPermissionAdminImpl(org.knopflerfish.framework.permissions.ConditionalPermissionInfoStorage cpis,
org.knopflerfish.framework.permissions.PermissionInfoStorage pis,
FrameworkContext framework)
public ConditionalPermissionInfo addConditionalPermissionInfo(ConditionInfo[] conds, PermissionInfo[] perms)
addConditionalPermissionInfo in interface ConditionalPermissionAdminconds - The Conditions that need to be satisfied to enable the
corresponding Permissions.perms - The Permissions that are enable when the corresponding
Conditions are satisfied.java.lang.SecurityException - If the caller does not have
AllPermission.public ConditionalPermissionInfo setConditionalPermissionInfo(java.lang.String name, ConditionInfo[] conds, PermissionInfo[] perms)
null, a new Conditional
Permission Info must be created and will be given a unique, never reused
name. If there is currently no Conditional Permission Info with the
specified name, a new Conditional Permission Info must be created with
the specified name. Otherwise, the Conditional Permission Info with the
specified name must be updated with the specified Conditions and
Permissions.setConditionalPermissionInfo in interface ConditionalPermissionAdminname - The name of the Conditional Permission Info, or
null.conds - The Conditions that need to be satisfied to enable the
corresponding Permissions.perms - The Permissions that are enable when the corresponding
Conditions are satisfied.java.lang.SecurityException - If the caller does not have
AllPermission.public java.util.Enumeration<ConditionalPermissionInfo> getConditionalPermissionInfos()
ConditionalPermissionInfo.delete() will remove the Conditional
Permission Info from Conditional Permission Admin.getConditionalPermissionInfos in interface ConditionalPermissionAdminpublic ConditionalPermissionInfo getConditionalPermissionInfo(java.lang.String name)
getConditionalPermissionInfo in interface ConditionalPermissionAdminname - The name of the Conditional Permission Info to be returned.public java.security.AccessControlContext getAccessControlContext(java.lang.String[] signers)
getAccessControlContext in interface ConditionalPermissionAdminsigners - The signers for which to return an Access Control Context.AccessControlContext that has the Permissions
associated with the signer.public ConditionalPermissionUpdate newConditionalPermissionUpdate()
ConditionalPermissionAdminnewConditionalPermissionUpdate in interface ConditionalPermissionAdminConditionalPermissionAdmin.newConditionalPermissionUpdate()public ConditionalPermissionInfo newConditionalPermissionInfo(java.lang.String name, ConditionInfo[] conditions, PermissionInfo[] permissions, java.lang.String access)
ConditionalPermissionAdminConditionalPermissionUpdate. The
delete method on ConditionalPermissionInfo objects
created with this method must throw UnsupportedOperationException.newConditionalPermissionInfo in interface ConditionalPermissionAdminname - The name of the created ConditionalPermissionInfo or
null to have a unique name generated when the returned
ConditionalPermissionInfo is committed in an update to the
Conditional Permission Table.conditions - The conditions that need to be satisfied to enable the
specified permissions. This argument can be null or an
empty array indicating the specified permissions are not guarded
by any conditions.permissions - The permissions that are enabled when the specified
conditions, if any, are satisfied. This argument must not be
null and must specify at least one permission.access - Access decision. Must be one of the following values:
The specified access decision value must be evaluated case
insensitively.ConditionalPermissionInfo object suitable for insertion
into a ConditionalPermissionUpdate.org.osgi.service.condpermadmin.ConditionalPermissionAdmin#newConditionalPermissionInfo()public ConditionalPermissionInfo newConditionalPermissionInfo(java.lang.String encoded)
ConditionalPermissionAdminConditionalPermissionInfo from the specified
encoded ConditionalPermissionInfo string suitable for insertion
into a ConditionalPermissionUpdate. The delete method on
ConditionalPermissionInfo objects created with this method must
throw UnsupportedOperationException.newConditionalPermissionInfo in interface ConditionalPermissionAdminencoded - The encoded
ConditionalPermissionInfo. White space in the encoded
ConditionalPermissionInfo is ignored. The access decision
value in the encoded ConditionalPermissionInfo must be
evaluated case insensitively. If the encoded
ConditionalPermissionInfo does not contain the optional
name, null must be used for the name and a unique name
will be generated when the returned
ConditionalPermissionInfo is committed in an update to the
Conditional Permission Table.ConditionalPermissionInfo object suitable for insertion
into a ConditionalPermissionUpdate.org.osgi.service.condpermadmin.ConditionalPermissionAdmin#newConditionalPermissionInfo()