Nuxeo Enterprise Platform 5.4

org.nuxeo.ecm.core.security
Class SecurityPolicyServiceImpl

java.lang.Object
  extended by org.nuxeo.ecm.core.security.SecurityPolicyServiceImpl
All Implemented Interfaces:
java.io.Serializable, SecurityPolicyService

public class SecurityPolicyServiceImpl
extends java.lang.Object
implements 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:
Serialized Form

Constructor Summary
SecurityPolicyServiceImpl()
           
 
Method Summary
 boolean arePoliciesExpressibleInQuery()
          Checks if the policies can be expressed in a query.
 boolean arePoliciesRestrictingPermission(java.lang.String permission)
          Checks if any policy restricts the given permission.
 Access checkPermission(Document doc, ACP mergedAcp, java.security.Principal principal, java.lang.String permission, java.lang.String[] resolvedPermissions, java.lang.String[] additionalPrincipals)
          Checks given permission for doc and principal.
 java.util.Collection<SQLQuery.Transformer> getPoliciesQueryTransformers()
          Get the transformers to apply the policies to a query.
 void registerDescriptor(SecurityPolicyDescriptor descriptor)
           
 void unregisterDescriptor(SecurityPolicyDescriptor descriptor)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SecurityPolicyServiceImpl

public SecurityPolicyServiceImpl()
Method Detail

arePoliciesRestrictingPermission

public boolean arePoliciesRestrictingPermission(java.lang.String permission)
Description copied from interface: SecurityPolicyService
Checks if any policy restricts the given permission.

If not, then no post-filtering on policies will be needed for query results.

Specified by:
arePoliciesRestrictingPermission in interface SecurityPolicyService
Returns:
true if a policy restricts the permission

arePoliciesExpressibleInQuery

public boolean arePoliciesExpressibleInQuery()
Description copied from interface: SecurityPolicyService
Checks if the policies can be expressed in a query.

If not, then any query made will have to be post-filtered.

Specified by:
arePoliciesExpressibleInQuery in interface SecurityPolicyService
Returns:
true if all policies can be expressed in a query

getPoliciesQueryTransformers

public java.util.Collection<SQLQuery.Transformer> getPoliciesQueryTransformers()
Description copied from interface: SecurityPolicyService
Get the transformers to apply the policies to a query.

Specified by:
getPoliciesQueryTransformers in interface SecurityPolicyService
Returns:
the transformers.

registerDescriptor

public void registerDescriptor(SecurityPolicyDescriptor descriptor)
Specified by:
registerDescriptor in interface SecurityPolicyService

unregisterDescriptor

public void unregisterDescriptor(SecurityPolicyDescriptor descriptor)
Specified by:
unregisterDescriptor in interface SecurityPolicyService

checkPermission

public Access checkPermission(Document doc,
                              ACP mergedAcp,
                              java.security.Principal principal,
                              java.lang.String permission,
                              java.lang.String[] resolvedPermissions,
                              java.lang.String[] additionalPrincipals)
Description copied from interface: SecurityPolicyService
Checks 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:
checkPermission in interface SecurityPolicyService
Parameters:
doc - the document to check
mergedAcp - merged acp resolved for this document
principal - principal to check
permission - permission to check
resolvedPermissions - permissions or groups of permissions containing permission
additionalPrincipals - principals (groups) to check for principal
Returns:
access: true, false, or nothing. When nothing is returned, following policies or default core security are applied.

Nuxeo Enterprise Platform 5.4

Copyright © 2010 Nuxeo SAS. All Rights Reserved.