public class SecurityPolicyServiceImpl extends Object implements SecurityPolicyService
Iterates over ordered policies. First policy to give a known access (grant or deny) applies.
| Constructor and Description | 
|---|
SecurityPolicyServiceImpl()  | 
| Modifier and Type | Method and Description | 
|---|---|
boolean | 
arePoliciesExpressibleInQuery(String repositoryName)
Checks if the policies can be expressed in a query for a given repository. 
 | 
boolean | 
arePoliciesRestrictingPermission(String permission)
Checks if any policy restricts the given permission. 
 | 
Access | 
checkPermission(Document doc,
               ACP mergedAcp,
               NuxeoPrincipal principal,
               String permission,
               String[] resolvedPermissions,
               String[] additionalPrincipals)
Checks given permission for doc and principal. 
 | 
List<SecurityPolicy> | 
getPolicies()
Gets the list of registered security policies. 
 | 
Collection<SQLQuery.Transformer> | 
getPoliciesQueryTransformers(String repositoryName)
Get the transformers to apply the policies to a query for given repository. 
 | 
void | 
registerDescriptor(SecurityPolicyDescriptor descriptor)  | 
void | 
unregisterDescriptor(SecurityPolicyDescriptor descriptor)  | 
public SecurityPolicyServiceImpl()
public List<SecurityPolicy> getPolicies()
SecurityPolicyServicegetPolicies in interface SecurityPolicyServicepublic boolean arePoliciesRestrictingPermission(String permission)
SecurityPolicyServiceIf not, then no post-filtering on policies will be needed for query results.
arePoliciesRestrictingPermission in interface SecurityPolicyServicetrue if a policy restricts the permissionpublic boolean arePoliciesExpressibleInQuery(String repositoryName)
SecurityPolicyServiceIf not, then any query made will have to be post-filtered.
arePoliciesExpressibleInQuery in interface SecurityPolicyServicerepositoryName - the target repository name.true if all policies can be expressed in a querypublic Collection<SQLQuery.Transformer> getPoliciesQueryTransformers(String repositoryName)
SecurityPolicyServicegetPoliciesQueryTransformers in interface SecurityPolicyServicerepositoryName - the target repository name.public void registerDescriptor(SecurityPolicyDescriptor descriptor)
registerDescriptor in interface SecurityPolicyServicepublic void unregisterDescriptor(SecurityPolicyDescriptor descriptor)
unregisterDescriptor in interface SecurityPolicyServicepublic Access checkPermission(Document doc, ACP mergedAcp, NuxeoPrincipal principal, String permission, String[] resolvedPermissions, String[] additionalPrincipals)
SecurityPolicyServiceThe 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.
checkPermission in interface SecurityPolicyServicedoc - 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 principalCopyright © 2019 Nuxeo. All rights reserved.