Class PermissionServiceImpl
- java.lang.Object
-
- org.bonitasoft.engine.authorization.PermissionServiceImpl
-
- All Implemented Interfaces:
PermissionService,LifecycleService,TenantLifecycleService
@Component @ConditionalOnSingleCandidate(PermissionService.class) public class PermissionServiceImpl extends java.lang.Object implements PermissionService
Permission service implementation- Author:
- Baptiste Mesta
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringEXTENSION_SEPARATORstatic java.lang.StringPROPERTY_API_EXTENSIONSstatic java.lang.StringPROPERTY_CONTENT_TYPEstatic java.lang.StringPROPERTY_METHOD_MASKstatic java.lang.StringPROPERTY_PATH_TEMPLATE_MASKstatic java.lang.StringPROPERTY_PERMISSIONS_MASKstatic java.lang.StringRESOURCE_PERMISSION_KEY_MASKstatic java.lang.StringRESOURCE_PERMISSION_VALUEstatic java.lang.StringRESOURCES_PROPERTYprotected longtenantId-
Fields inherited from interface org.bonitasoft.engine.authorization.PermissionService
PROFILE_TYPE_AUTHORIZATION_PREFIX, SCRIPT_TYPE_AUTHORIZATION_PREFIX, USER_TYPE_AUTHORIZATION_PREFIX
-
-
Constructor Summary
Constructors Constructor Description PermissionServiceImpl(ClassLoaderService classLoaderService, SessionAccessor sessionAccessor, SessionService sessionService, long tenantId, CompoundPermissionsMapping compoundPermissionsMapping, ResourcesPermissionsMapping resourcesPermissionsMapping, CustomPermissionsMapping customPermissionsMapping)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddCustomEntityPermissions(java.lang.String entity, java.util.Set<java.lang.String> resourcePermissions)voidaddPermissions(java.lang.String pageName, java.util.Properties pageProperties)booleancheckAPICallWithScript(java.lang.String className, org.bonitasoft.engine.api.permission.APICallContext context, boolean reload)execute thePermissionRulehaving the class name in parameter using the given contextprotected APIAccessorImplcreateAPIAccessorImpl()java.util.Set<java.lang.String>getCustomPagePermissions(java.lang.String declaredPageResources, ResourcesPermissionsMapping resourcesPermissionsMapping)protected java.util.Set<java.lang.String>getDeclaredPermissions(java.lang.String apiName, java.lang.String resourceName, java.lang.String method, java.lang.String resourceQualifiers, ResourcesPermissionsMapping resourcesPermissionsMapping)java.util.Set<java.lang.String>getResourcePermissions(java.lang.String resourceKey)SSessiongetSession()booleanisAuthorized(org.bonitasoft.engine.api.permission.APICallContext apiCallContext)voidpause()Temporary halt the execution of this service.voidremoveCustomEntityPermissions(java.lang.String entity)voidremovePermissions(java.util.Properties pageProperties)voidresume()resume the execution the servicevoidstart()Start the servicevoidstop()-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.bonitasoft.engine.commons.TenantLifecycleService
init
-
-
-
-
Field Detail
-
RESOURCES_PROPERTY
public static final java.lang.String RESOURCES_PROPERTY
- See Also:
- Constant Field Values
-
PROPERTY_CONTENT_TYPE
public static final java.lang.String PROPERTY_CONTENT_TYPE
- See Also:
- Constant Field Values
-
PROPERTY_API_EXTENSIONS
public static final java.lang.String PROPERTY_API_EXTENSIONS
- See Also:
- Constant Field Values
-
PROPERTY_METHOD_MASK
public static final java.lang.String PROPERTY_METHOD_MASK
- See Also:
- Constant Field Values
-
PROPERTY_PATH_TEMPLATE_MASK
public static final java.lang.String PROPERTY_PATH_TEMPLATE_MASK
- See Also:
- Constant Field Values
-
PROPERTY_PERMISSIONS_MASK
public static final java.lang.String PROPERTY_PERMISSIONS_MASK
- See Also:
- Constant Field Values
-
RESOURCE_PERMISSION_KEY_MASK
public static final java.lang.String RESOURCE_PERMISSION_KEY_MASK
- See Also:
- Constant Field Values
-
RESOURCE_PERMISSION_VALUE
public static final java.lang.String RESOURCE_PERMISSION_VALUE
- See Also:
- Constant Field Values
-
EXTENSION_SEPARATOR
public static final java.lang.String EXTENSION_SEPARATOR
- See Also:
- Constant Field Values
-
tenantId
protected final long tenantId
-
-
Constructor Detail
-
PermissionServiceImpl
public PermissionServiceImpl(ClassLoaderService classLoaderService, SessionAccessor sessionAccessor, SessionService sessionService, @Value("${tenantId}") long tenantId, CompoundPermissionsMapping compoundPermissionsMapping, ResourcesPermissionsMapping resourcesPermissionsMapping, CustomPermissionsMapping customPermissionsMapping)
-
-
Method Detail
-
checkAPICallWithScript
public boolean checkAPICallWithScript(java.lang.String className, org.bonitasoft.engine.api.permission.APICallContext context, boolean reload) throws SExecutionException, java.lang.ClassNotFoundExceptionDescription copied from interface:PermissionServiceexecute thePermissionRulehaving the class name in parameter using the given context- Specified by:
checkAPICallWithScriptin interfacePermissionService- Parameters:
className- the class name of the rule to executecontext- the context of the api call to checkreload- reload class when calling this method, warning if some class were called with reload set to false, they will never be reloadable- Returns:
- true if the security script allows the user to make the api call
- Throws:
SExecutionExceptionjava.lang.ClassNotFoundException
-
getSession
public SSession getSession() throws SExecutionException
- Throws:
SExecutionException
-
createAPIAccessorImpl
protected APIAccessorImpl createAPIAccessorImpl()
-
start
public void start() throws SBonitaExceptionDescription copied from interface:LifecycleServiceStart the service- Specified by:
startin interfaceLifecycleService- Throws:
SBonitaException
-
stop
public void stop()
- Specified by:
stopin interfaceLifecycleService
-
pause
public void pause()
Description copied from interface:LifecycleServiceTemporary halt the execution of this service.- Specified by:
pausein interfaceLifecycleService
-
resume
public void resume() throws SBonitaExceptionDescription copied from interface:LifecycleServiceresume the execution the service- Specified by:
resumein interfaceLifecycleService- Throws:
SBonitaException
-
isAuthorized
public boolean isAuthorized(org.bonitasoft.engine.api.permission.APICallContext apiCallContext) throws SExecutionException- Specified by:
isAuthorizedin interfacePermissionService- Throws:
SExecutionException
-
getDeclaredPermissions
protected java.util.Set<java.lang.String> getDeclaredPermissions(java.lang.String apiName, java.lang.String resourceName, java.lang.String method, java.lang.String resourceQualifiers, ResourcesPermissionsMapping resourcesPermissionsMapping)
-
addPermissions
public void addPermissions(java.lang.String pageName, java.util.Properties pageProperties)- Specified by:
addPermissionsin interfacePermissionService
-
removePermissions
public void removePermissions(java.util.Properties pageProperties)
- Specified by:
removePermissionsin interfacePermissionService
-
getCustomPagePermissions
public java.util.Set<java.lang.String> getCustomPagePermissions(java.lang.String declaredPageResources, ResourcesPermissionsMapping resourcesPermissionsMapping)
-
getResourcePermissions
public java.util.Set<java.lang.String> getResourcePermissions(java.lang.String resourceKey)
- Specified by:
getResourcePermissionsin interfacePermissionService
-
addCustomEntityPermissions
public void addCustomEntityPermissions(java.lang.String entity, java.util.Set<java.lang.String> resourcePermissions)
-
removeCustomEntityPermissions
public void removeCustomEntityPermissions(java.lang.String entity)
-
-