Package org.nuxeo.ecm.core.security
Class SecurityPolicyServiceImpl
java.lang.Object
org.nuxeo.ecm.core.security.SecurityPolicyServiceImpl
- All Implemented Interfaces:
Serializable,SecurityPolicyService
Security policy service implementation.
Iterates over ordered policies. First policy to give a known access (grant or deny) applies.
- Author:
- Anahide Tchertchian
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbooleanarePoliciesExpressibleInQuery(String repositoryName) Checks if the policies can be expressed in a query for a given repository.booleanarePoliciesRestrictingPermission(String permission) Checks if any policy restricts the given permission.checkPermission(Document doc, ACP mergedAcp, NuxeoPrincipal principal, String permission, String[] resolvedPermissions, String[] additionalPrincipals) Checks given permission for doc and principal.Gets the list of registered security policies.getPoliciesQueryTransformers(String repositoryName) Get the transformers to apply the policies to a query for given repository.voidregisterDescriptor(SecurityPolicyDescriptor descriptor) voidunregisterDescriptor(SecurityPolicyDescriptor descriptor)
-
Constructor Details
-
SecurityPolicyServiceImpl
public SecurityPolicyServiceImpl()
-
-
Method Details
-
getPolicies
Description copied from interface:SecurityPolicyServiceGets the list of registered security policies.- Specified by:
getPoliciesin interfaceSecurityPolicyService- Returns:
- the policies
-
arePoliciesRestrictingPermission
Description copied from interface:SecurityPolicyServiceChecks if any policy restricts the given permission.If not, then no post-filtering on policies will be needed for query results.
- Specified by:
arePoliciesRestrictingPermissionin interfaceSecurityPolicyService- Returns:
trueif a policy restricts the permission
-
arePoliciesExpressibleInQuery
Description copied from interface:SecurityPolicyServiceChecks if the policies can be expressed in a query for a given repository.If not, then any query made will have to be post-filtered.
- Specified by:
arePoliciesExpressibleInQueryin interfaceSecurityPolicyService- Parameters:
repositoryName- the target repository name.- Returns:
trueif all policies can be expressed in a query
-
getPoliciesQueryTransformers
Description copied from interface:SecurityPolicyServiceGet the transformers to apply the policies to a query for given repository.- Specified by:
getPoliciesQueryTransformersin interfaceSecurityPolicyService- Parameters:
repositoryName- the target repository name.- Returns:
- the transformers.
-
registerDescriptor
- Specified by:
registerDescriptorin interfaceSecurityPolicyService
-
unregisterDescriptor
- Specified by:
unregisterDescriptorin interfaceSecurityPolicyService
-
checkPermission
public Access checkPermission(Document doc, ACP mergedAcp, NuxeoPrincipal principal, String permission, String[] resolvedPermissions, String[] additionalPrincipals) Description copied from interface:SecurityPolicyServiceChecks given permission for doc and principal.The security service checks this service for a security access. This access is defined iterating over pluggable policies in a defined order. If access is not specified, security service applies its default policy.
- Specified by:
checkPermissionin interfaceSecurityPolicyService- Parameters:
doc- the document to checkmergedAcp- merged acp resolved for this documentprincipal- principal to checkpermission- permission to checkresolvedPermissions- permissions or groups of permissions containing permissionadditionalPrincipals- principals (groups) to check for principal- Returns:
- access: true, false, or nothing. When nothing is returned, following policies or default core security are applied.
-