Class ConditionalPermissionAdminImpl
- java.lang.Object
-
- org.apache.felix.framework.security.condpermadmin.ConditionalPermissionAdminImpl
-
- All Implemented Interfaces:
org.osgi.service.condpermadmin.ConditionalPermissionAdmin
public final class ConditionalPermissionAdminImpl extends java.lang.Object implements org.osgi.service.condpermadmin.ConditionalPermissionAdminAn implementation of the ConditionalPermissionAdmin service that doesn't need to have a framework specific security manager set. It use the DomainGripper to know what bundleprotectiondomains are expected.
-
-
Constructor Summary
Constructors Constructor Description ConditionalPermissionAdminImpl(Permissions permissions, Conditions condtions, LocalPermissions localPermissions, PropertiesCache cache, PermissionAdminImpl pai)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description org.osgi.service.condpermadmin.ConditionalPermissionInfoaddConditionalPermissionInfo(org.osgi.service.condpermadmin.ConditionInfo[] conditions, org.osgi.service.permissionadmin.PermissionInfo[] permissions)voidclearPD()java.security.AccessControlContextgetAccessControlContext(java.lang.String[] signers)org.osgi.service.condpermadmin.ConditionalPermissionInfogetConditionalPermissionInfo(java.lang.String name)java.util.EnumerationgetConditionalPermissionInfos()booleanhandlePAHandle(org.apache.felix.framework.BundleProtectionDomain pd)booleanhasPermission(org.apache.felix.framework.BundleRevisionImpl module, org.apache.felix.framework.cache.Content content, java.security.ProtectionDomain pd, java.security.Permission permission, boolean direct, java.lang.Object admin)This method does the actual permission check.booleanimpliesLocal(org.osgi.framework.Bundle felixBundle, org.apache.felix.framework.cache.Content content, java.security.Permission permission)booleanisEmpty()org.osgi.service.condpermadmin.ConditionalPermissionInfonewConditionalPermissionInfo(java.lang.String encodedConditionalPermissionInfo)org.osgi.service.condpermadmin.ConditionalPermissionInfonewConditionalPermissionInfo(java.lang.String name, org.osgi.service.condpermadmin.ConditionInfo[] conditions, org.osgi.service.permissionadmin.PermissionInfo[] permissions, java.lang.String access)org.osgi.service.condpermadmin.ConditionalPermissionUpdatenewConditionalPermissionUpdate()org.osgi.service.condpermadmin.ConditionalPermissionInfosetConditionalPermissionInfo(java.lang.String name, org.osgi.service.condpermadmin.ConditionInfo[] conditions, org.osgi.service.permissionadmin.PermissionInfo[] permissions)
-
-
-
Constructor Detail
-
ConditionalPermissionAdminImpl
public ConditionalPermissionAdminImpl(Permissions permissions, Conditions condtions, LocalPermissions localPermissions, PropertiesCache cache, PermissionAdminImpl pai) throws java.io.IOException
- Throws:
java.io.IOException
-
-
Method Detail
-
addConditionalPermissionInfo
public org.osgi.service.condpermadmin.ConditionalPermissionInfo addConditionalPermissionInfo(org.osgi.service.condpermadmin.ConditionInfo[] conditions, org.osgi.service.permissionadmin.PermissionInfo[] permissions)- Specified by:
addConditionalPermissionInfoin interfaceorg.osgi.service.condpermadmin.ConditionalPermissionAdmin
-
getAccessControlContext
public java.security.AccessControlContext getAccessControlContext(java.lang.String[] signers)
- Specified by:
getAccessControlContextin interfaceorg.osgi.service.condpermadmin.ConditionalPermissionAdmin
-
getConditionalPermissionInfo
public org.osgi.service.condpermadmin.ConditionalPermissionInfo getConditionalPermissionInfo(java.lang.String name)
- Specified by:
getConditionalPermissionInfoin interfaceorg.osgi.service.condpermadmin.ConditionalPermissionAdmin
-
getConditionalPermissionInfos
public java.util.Enumeration getConditionalPermissionInfos()
- Specified by:
getConditionalPermissionInfosin interfaceorg.osgi.service.condpermadmin.ConditionalPermissionAdmin
-
setConditionalPermissionInfo
public org.osgi.service.condpermadmin.ConditionalPermissionInfo setConditionalPermissionInfo(java.lang.String name, org.osgi.service.condpermadmin.ConditionInfo[] conditions, org.osgi.service.permissionadmin.PermissionInfo[] permissions)- Specified by:
setConditionalPermissionInfoin interfaceorg.osgi.service.condpermadmin.ConditionalPermissionAdmin
-
hasPermission
public boolean hasPermission(org.apache.felix.framework.BundleRevisionImpl module, org.apache.felix.framework.cache.Content content, java.security.ProtectionDomain pd, java.security.Permission permission, boolean direct, java.lang.Object admin)This method does the actual permission check. If it is not a direct check it will try to determine the other bundle domains that will follow automatically in case this is the first check in one permission check. If not then it will keep track of which domains we have already see. While it keeps track it builds up a list of postponed tuples which it will evaluate at the last domain. See the core spec 9.5.1 and following for a general description.- Parameters:
felixBundle- the bundle in question.loader- the content loader of the bundle to get access to the jar to check for local permissions.root- the bundle id.signers- the signers (this is to support the ACC based on signers)pd- the bundle protection domainpermission- the permission currently checkeddirect- whether this is a direct check or not. direct check will not expect any further bundle domains on the stack- Returns:
- true in case the permission is granted or there are postponed tuples false if not. Again, see the spec for more explanations.
-
impliesLocal
public boolean impliesLocal(org.osgi.framework.Bundle felixBundle, org.apache.felix.framework.cache.Content content, java.security.Permission permission)
-
isEmpty
public boolean isEmpty()
-
newConditionalPermissionInfo
public org.osgi.service.condpermadmin.ConditionalPermissionInfo newConditionalPermissionInfo(java.lang.String encodedConditionalPermissionInfo)
- Specified by:
newConditionalPermissionInfoin interfaceorg.osgi.service.condpermadmin.ConditionalPermissionAdmin
-
newConditionalPermissionInfo
public org.osgi.service.condpermadmin.ConditionalPermissionInfo newConditionalPermissionInfo(java.lang.String name, org.osgi.service.condpermadmin.ConditionInfo[] conditions, org.osgi.service.permissionadmin.PermissionInfo[] permissions, java.lang.String access)- Specified by:
newConditionalPermissionInfoin interfaceorg.osgi.service.condpermadmin.ConditionalPermissionAdmin
-
newConditionalPermissionUpdate
public org.osgi.service.condpermadmin.ConditionalPermissionUpdate newConditionalPermissionUpdate()
- Specified by:
newConditionalPermissionUpdatein interfaceorg.osgi.service.condpermadmin.ConditionalPermissionAdmin
-
handlePAHandle
public boolean handlePAHandle(org.apache.felix.framework.BundleProtectionDomain pd)
-
clearPD
public void clearPD()
-
-