Class PermissionServiceImpl
java.lang.Object
org.bonitasoft.engine.authorization.PermissionServiceImpl
- All Implemented Interfaces:
PermissionService,LifecycleService,TenantLifecycleService
@Component
@ConditionalOnSingleCandidate(PermissionService.class)
public class PermissionServiceImpl
extends Object
implements PermissionService
Permission service implementation
- Author:
- Baptiste Mesta
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final BooleanPropertyprotected final DynamicPermissionsChecksstatic final Stringprotected groovy.lang.GroovyClassLoaderstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final StringFields inherited from interface org.bonitasoft.engine.authorization.PermissionService
PROFILE_TYPE_AUTHORIZATION_PREFIX, SCRIPT_TYPE_AUTHORIZATION_PREFIX, USER_TYPE_AUTHORIZATION_PREFIX -
Constructor Summary
ConstructorsConstructorDescriptionPermissionServiceImpl(ClassLoaderService classLoaderService, SessionAccessor sessionAccessor, SessionService sessionService, CompoundPermissionsMapping compoundPermissionsMapping, ResourcesPermissionsMapping resourcesPermissionsMapping, CustomPermissionsMapping customPermissionsMapping, DynamicPermissionsChecks dynamicPermissionsChecks, boolean dynamicPermissionCheck) -
Method Summary
Modifier and TypeMethodDescriptionvoidaddCustomEntityPermissions(String entity, Set<String> resourcePermissions) voidaddPermissions(String pageName, Properties pageProperties) protected booleancheckAPICallWithScript(String className, org.bonitasoft.engine.api.permission.APICallContext context) protected booleancheckDynamicPermissionsWithProfilesOrUsername(Set<String> resourceAuthorizations, Set<String> userPermissions) protected booleancheckDynamicPermissionsWithScript(org.bonitasoft.engine.api.permission.APICallContext apiCallContext, String resourceClassName) protected voidcheckResourceAuthorizationsSyntax(Set<String> resourceAuthorizations) protected APIAccessorImplgetCustomPagePermissions(String declaredPageResources, ResourcesPermissionsMapping resourcesPermissionsMapping) getDeclaredPermissions(String apiName, String resourceName, String method, String resourceQualifiers, ResourcesPermissionsMapping resourcesPermissionsMapping) getResourceAuthorizationsForProfileOrUser(Set<String> resourcePermissions) protected StringgetResourceClassName(Set<String> resourcePermissions) getResourceDynamicPermissions(String resourceKey) getResourcePermissions(String resourceKey) protected Class<?>getRuleClass(String className) booleanisAuthorized(org.bonitasoft.engine.api.permission.APICallContext apiCallContext) protected booleanisAuthorizedByDynamicPermissions(org.bonitasoft.engine.api.permission.APICallContext apiCallContext, Set<String> userPermissions, Set<String> resourceDynamicPermissions) protected booleanisAuthorizedByStaticPermissions(org.bonitasoft.engine.api.permission.APICallContext apiCallContext) voidreload()voidremoveCustomEntityPermissions(String entity) voidremovePermissions(Properties pageProperties) voidstart()Start the servicevoidstop()Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.bonitasoft.engine.commons.LifecycleService
pause, resumeMethods inherited from interface org.bonitasoft.engine.commons.TenantLifecycleService
init
-
Field Details
-
PROPERTY_TO_ENABLE_DYNAMIC_PERMISSIONS
- See Also:
-
RESOURCES_PROPERTY
- See Also:
-
PROPERTY_CONTENT_TYPE
- See Also:
-
PROPERTY_API_EXTENSIONS
- See Also:
-
PROPERTY_METHOD_MASK
- See Also:
-
PROPERTY_PATH_TEMPLATE_MASK
- See Also:
-
PROPERTY_PERMISSIONS_MASK
- See Also:
-
RESOURCE_PERMISSION_KEY_MASK
- See Also:
-
RESOURCE_PERMISSION_VALUE
- See Also:
-
EXTENSION_SEPARATOR
- See Also:
-
groovyClassLoader
protected groovy.lang.GroovyClassLoader groovyClassLoader -
dynamicPermissionsChecks
-
dynamicPermissionCheck
-
-
Constructor Details
-
PermissionServiceImpl
public PermissionServiceImpl(ClassLoaderService classLoaderService, SessionAccessor sessionAccessor, SessionService sessionService, CompoundPermissionsMapping compoundPermissionsMapping, ResourcesPermissionsMapping resourcesPermissionsMapping, CustomPermissionsMapping customPermissionsMapping, DynamicPermissionsChecks dynamicPermissionsChecks, @Value("${bonita.runtime.authorization.dynamic-check.enabled:true}") boolean dynamicPermissionCheck)
-
-
Method Details
-
checkAPICallWithScript
protected boolean checkAPICallWithScript(String className, org.bonitasoft.engine.api.permission.APICallContext context) throws SExecutionException, ClassNotFoundException -
getRuleClass
protected Class<?> getRuleClass(String className) throws SExecutionException, ClassNotFoundException -
getSession
- Throws:
SExecutionException
-
reload
- Throws:
SExecutionException
-
createAPIAccessorImpl
-
start
Description copied from interface:LifecycleServiceStart the service- Specified by:
startin interfaceLifecycleService- Throws:
SBonitaException
-
stop
public void stop()- Specified by:
stopin interfaceLifecycleService
-
isAuthorized
public boolean isAuthorized(org.bonitasoft.engine.api.permission.APICallContext apiCallContext) throws SExecutionException - Specified by:
isAuthorizedin interfacePermissionService- Throws:
SExecutionException
-
isAuthorizedByStaticPermissions
protected boolean isAuthorizedByStaticPermissions(org.bonitasoft.engine.api.permission.APICallContext apiCallContext) throws SExecutionException - Throws:
SExecutionException
-
isAuthorizedByDynamicPermissions
protected boolean isAuthorizedByDynamicPermissions(org.bonitasoft.engine.api.permission.APICallContext apiCallContext, Set<String> userPermissions, Set<String> resourceDynamicPermissions) throws SExecutionException - Throws:
SExecutionException
-
checkResourceAuthorizationsSyntax
-
getResourceAuthorizationsForProfileOrUser
-
checkDynamicPermissionsWithProfilesOrUsername
-
checkDynamicPermissionsWithScript
protected boolean checkDynamicPermissionsWithScript(org.bonitasoft.engine.api.permission.APICallContext apiCallContext, String resourceClassName) throws SExecutionException, ClassNotFoundException -
getResourceClassName
-
getResourceDynamicPermissions
-
getDeclaredPermissions
-
addPermissions
- Specified by:
addPermissionsin interfacePermissionService
-
removePermissions
- Specified by:
removePermissionsin interfacePermissionService
-
getCustomPagePermissions
public Set<String> getCustomPagePermissions(String declaredPageResources, ResourcesPermissionsMapping resourcesPermissionsMapping) -
getResourcePermissions
- Specified by:
getResourcePermissionsin interfacePermissionService
-
addCustomEntityPermissions
-
removeCustomEntityPermissions
-