|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.eclipse.osgi.framework.internal.core.PermissionAdminImpl
public class PermissionAdminImpl
Permission Admin service for the OSGi specification. The Permission Admin service allows operators to manage the permissions of bundles. There is at most one Permission Admin service present in the Framework.
Access to the Permission Admin service is protected by corresponding ServicePermission. In addition the AdminPermission is required to actually set permissions.
Bundle permissions are managed using a permission table. A bundle's location serves as the key into this permission table. The value of a table entry is the set of permissions (of type PermissionInfo) granted to the bundle with the given location. A bundle may have an entry in the permission table prior to being installed in the Framework.
The permissions specified in setDefaultPermissions are used as the default permissions which are granted to all bundles that do not have an entry in the permission table.
Any changes to a bundle's permissions in the permission table will take effect no later than when bundle's java.security.ProtectionDomain is involved in a permission check, and will be made persistent.
Only permission classes on the system classpath or from an exported package are considered during a permission check. Additionally, only permission classes that are subclasses of java.security.Permission and define a 2-argument constructor that takes a name string and an actions string can be used.
Permissions implicitly granted by the Framework (for example, a bundle's permission to access its persistent storage area) cannot be changed, and are not reflected in the permissions returned by getPermissions and getDefaultPermissions.
Field Summary | |
---|---|
protected PermissionInfo[] |
baseImpliedPermissionInfos
The basic implied permissions for a bundle |
protected org.eclipse.osgi.framework.internal.core.BundleCombinedPermissions |
defaultAssignedPermissions
The permission collection containing the default assigned permissions |
protected PermissionInfo[] |
defaultDefaultPermissionInfos
The permissions to use if no other permissions can be determined |
protected Framework |
framework
framework object |
protected PermissionStorage |
storage
permission storage object |
Constructor Summary | |
---|---|
protected |
PermissionAdminImpl(Framework framework,
PermissionStorage storage)
Construstor. |
Method Summary | |
---|---|
protected org.eclipse.osgi.framework.internal.core.BundlePermissionCollection |
createDefaultAssignedPermissions(PermissionInfo[] info)
Creates the default assigned permissions for bundles that have no assigned permissions. |
protected org.eclipse.osgi.framework.internal.core.BundlePermissionCollection |
createPermissions(PermissionInfo[] info,
AbstractBundle bundle,
boolean implied)
Create a PermissionCollection from a PermissionInfo array. |
protected BundleProtectionDomain |
createProtectionDomain(AbstractBundle bundle)
This method is called by the Bundle object to create the PermissionCollection used by the bundle's ProtectionDomain. |
protected org.eclipse.osgi.framework.internal.core.BundlePermissionCollection |
getAssignedPermissions(AbstractBundle bundle)
Returns the assigned permissions for a bundle. |
PermissionInfo[] |
getDefaultPermissions()
Gets the default permissions. |
protected org.eclipse.osgi.framework.internal.core.BundlePermissionCollection |
getImpliedPermissions(AbstractBundle bundle)
Returns the implied permissions for a bundle. |
java.lang.String[] |
getLocations()
Returns the bundle locations that have permissions assigned to them, that is, bundle locations for which an entry exists in the permission table. |
protected PermissionInfo[] |
getPermissionInfos(java.net.URL resource)
Read the permissions from the specified resource. |
PermissionInfo[] |
getPermissions(java.lang.String location)
Gets the permissions assigned to the bundle with the specified location. |
protected java.lang.String[] |
makePermissionData(PermissionInfo[] permissions)
Make an array of encoded permission Strings from a PermissionInfo array. |
protected PermissionInfo[] |
makePermissionInfo(java.lang.String[] data)
Make a PermissionInfo array from an array of encoded permission Strings. |
void |
setDefaultPermissions(PermissionInfo[] permissions)
Sets the default permissions. |
void |
setPermissions(java.lang.String location,
PermissionInfo[] permissions)
Assigns the specified permissions to the bundle with the specified location. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected Framework framework
protected PermissionStorage storage
protected PermissionInfo[] defaultDefaultPermissionInfos
protected PermissionInfo[] baseImpliedPermissionInfos
protected org.eclipse.osgi.framework.internal.core.BundleCombinedPermissions defaultAssignedPermissions
Constructor Detail |
---|
protected PermissionAdminImpl(Framework framework, PermissionStorage storage)
framework
- Framework object.Method Detail |
---|
public PermissionInfo[] getPermissions(java.lang.String location)
getPermissions
in interface PermissionAdmin
location
- The location of the bundle whose permissions are to
be returned.
public void setPermissions(java.lang.String location, PermissionInfo[] permissions)
setPermissions
in interface PermissionAdmin
location
- The location of the bundle that will be assigned the
permissions.permissions
- The permissions to be assigned, or null
if the specified location is to be removed from the permission table.
java.lang.SecurityException
- if the caller does not have the
AllPermission.public java.lang.String[] getLocations()
getLocations
in interface PermissionAdmin
public PermissionInfo[] getDefaultPermissions()
These are the permissions granted to any bundle that does not have permissions assigned to its location.
getDefaultPermissions
in interface PermissionAdmin
public void setDefaultPermissions(PermissionInfo[] permissions)
These are the permissions granted to any bundle that does not have permissions assigned to its location.
setDefaultPermissions
in interface PermissionAdmin
permissions
- The default permissions.
java.lang.SecurityException
- if the caller does not have the
AllPermission.protected PermissionInfo[] makePermissionInfo(java.lang.String[] data)
data
- Array of encoded permission Strings
protected java.lang.String[] makePermissionData(PermissionInfo[] permissions)
permissions
- Array of PermissionInfor objects.
protected BundleProtectionDomain createProtectionDomain(AbstractBundle bundle)
bundle
- the bundle object
protected org.eclipse.osgi.framework.internal.core.BundlePermissionCollection createDefaultAssignedPermissions(PermissionInfo[] info)
protected org.eclipse.osgi.framework.internal.core.BundlePermissionCollection getAssignedPermissions(AbstractBundle bundle)
bundle
- The bundle to create the permissions for.
protected org.eclipse.osgi.framework.internal.core.BundlePermissionCollection getImpliedPermissions(AbstractBundle bundle)
bundle
- The bundle to create the permissions for.
protected PermissionInfo[] getPermissionInfos(java.net.URL resource)
protected org.eclipse.osgi.framework.internal.core.BundlePermissionCollection createPermissions(PermissionInfo[] info, AbstractBundle bundle, boolean implied)
info
- Array of PermissionInfo objects.bundle
- The target bundle for the permissions.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |