org.opencrx.kernel.layer.model
Class AccessControl_1

java.lang.Object
  extended by org.openmdx.application.dataprovider.spi.Layer_1
      extended by org.openmdx.application.dataprovider.spi.BeforeImageCachingLayer_1
          extended by org.openmdx.compatibility.base.dataprovider.layer.model.SystemAttributes_1
              extended by org.openmdx.compatibility.base.dataprovider.layer.model.OptimisticLocking_1
                  extended by org.openmdx.compatibility.base.dataprovider.layer.model.Standard_1
                      extended by org.opencrx.kernel.layer.model.AccessControl_1
All Implemented Interfaces:
org.openmdx.application.dataprovider.cci.Dataprovider_1_0, org.openmdx.application.dataprovider.spi.Layer_1_0, org.openmdx.application.dataprovider.spi.Layer_1_1, org.openmdx.application.dataprovider.spi.Layer_1_2, org.openmdx.application.dataprovider.spi.Operation_1_0

public class AccessControl_1
extends Standard_1

openCRX access control plugin. Implements the openCRX access control logic. This plugin is implemented as openMDX compatibility plugin. It will be migrated to a JMI plugin in one of the next versions.


Field Summary
protected  org.openmdx.application.dataprovider.cci.RequestCollection delegation
           
protected static org.openmdx.base.naming.Path EXTENT_PATTERN
           
 
Constructor Summary
AccessControl_1()
           
 
Method Summary
 void activate(short id, org.openmdx.application.configuration.Configuration configuration, org.openmdx.application.dataprovider.spi.Layer_1_0 delegation)
           
protected  void completeAccessGrantedByParent(org.openmdx.application.dataprovider.cci.ServiceHeader header, org.openmdx.application.dataprovider.cci.DataproviderObject_1_0 object, org.openmdx.application.dataprovider.cci.DataproviderObject_1_0 accessGrantedByParent)
           
protected  void completeObject(org.openmdx.application.dataprovider.cci.ServiceHeader header, org.openmdx.application.dataprovider.cci.DataproviderObject_1_0 object, org.openmdx.application.dataprovider.cci.DataproviderObject_1_0 accessGrantedByParent)
           
protected  void completeOwningUserAndGroup(org.openmdx.application.dataprovider.cci.ServiceHeader header, org.openmdx.application.dataprovider.cci.DataproviderObject_1_0 object)
           
protected  org.openmdx.application.dataprovider.cci.DataproviderReply completeReply(org.openmdx.application.dataprovider.cci.ServiceHeader header, org.openmdx.application.dataprovider.cci.DataproviderReply reply, org.openmdx.application.dataprovider.cci.DataproviderObject_1_0 accessGrantedByParent)
           
 org.openmdx.application.dataprovider.cci.DataproviderReply create(org.openmdx.application.dataprovider.cci.ServiceHeader header, org.openmdx.application.dataprovider.cci.DataproviderRequest request)
           
 void epilog(org.openmdx.application.dataprovider.cci.ServiceHeader header, org.openmdx.application.dataprovider.cci.DataproviderRequest[] requests, org.openmdx.application.dataprovider.cci.DataproviderReply[] replies)
           
 org.openmdx.application.dataprovider.cci.DataproviderReply find(org.openmdx.application.dataprovider.cci.ServiceHeader header, org.openmdx.application.dataprovider.cci.DataproviderRequest request)
           
 org.openmdx.application.dataprovider.cci.DataproviderReply get(org.openmdx.application.dataprovider.cci.ServiceHeader header, org.openmdx.application.dataprovider.cci.DataproviderRequest request)
           
protected  org.openmdx.base.naming.Path getGroupIdentity(org.openmdx.base.naming.Path accessPath, String qualifiedPrincipalName)
           
 List getInheritFromParentTypes()
          Returns a list of types as path patterns of object references which inherit the security settings from the parent object.
protected  String getQualifiedPrincipalName(org.openmdx.base.naming.Path principalIdentity)
           
protected  String getQualifiedPrincipalName(org.openmdx.base.naming.Path accessPath, String principalName)
           
protected  org.openmdx.base.mof.cci.ModelElement_1_0 getReferencedType(org.openmdx.base.naming.Path accessPath, FilterProperty[] filter)
           
 org.openmdx.application.dataprovider.cci.RequestCollection getRunAsRootDelegation()
           
protected  org.openmdx.base.naming.Path getUserIdentity(org.openmdx.base.naming.Path accessPath, String qualifiedPrincipalName)
           
protected  boolean isPrincipalGroup(org.openmdx.application.dataprovider.cci.DataproviderObject_1_0 object)
           
protected  boolean isSecureObject(org.openmdx.application.dataprovider.cci.DataproviderObject_1_0 object)
           
protected  boolean isSecureObject(org.openmdx.base.mof.cci.ModelElement_1_0 type)
           
 org.openmdx.application.dataprovider.cci.DataproviderReply operation(org.openmdx.application.dataprovider.cci.ServiceHeader header, org.openmdx.application.dataprovider.cci.DataproviderRequest request)
           
 void prolog(org.openmdx.application.dataprovider.cci.ServiceHeader header, org.openmdx.application.dataprovider.cci.DataproviderRequest[] requests)
           
 org.openmdx.application.dataprovider.cci.DataproviderReply remove(org.openmdx.application.dataprovider.cci.ServiceHeader header, org.openmdx.application.dataprovider.cci.DataproviderRequest request)
           
 org.openmdx.application.dataprovider.cci.DataproviderReply replace(org.openmdx.application.dataprovider.cci.ServiceHeader header, org.openmdx.application.dataprovider.cci.DataproviderRequest request)
           
protected  org.openmdx.application.dataprovider.cci.DataproviderObject_1_0 retrieveObjectFromLocal(org.openmdx.application.dataprovider.cci.ServiceHeader header, org.openmdx.base.naming.Path identity)
           
protected  String uidAsString()
           
 
Methods inherited from class org.openmdx.compatibility.base.dataprovider.layer.model.Standard_1
attributeIsInstanceOf, attributeMightBeInstanceOfAnXMLDatatype, completeDatatypes, completeObject, completeReply, getBeforeImage, getInstanceOf, getObjectClass, isInstanceOfBasicObject, mapInstanceOfFilterProperty, modify, notifyPreDelete, prepareDatatypes, prepareRequest, removeNonPersistentAttributes, setIdentity, useDatatypes
 
Methods inherited from class org.openmdx.compatibility.base.dataprovider.layer.model.OptimisticLocking_1
getObjectClassName, isModified, propagateDigest, verifyDigest
 
Methods inherited from class org.openmdx.application.dataprovider.spi.BeforeImageCachingLayer_1
hasBeforeImage
 
Methods inherited from class org.openmdx.application.dataprovider.spi.Layer_1
configurationSpecification, deactivate, epilog, getConfiguration, getDelegation, getDelegation, getId, getLenientProcessor, getModel, isBypassedByLenientRequests, isLenient, process, process, process, process, prolog, set, startPublishing, terminal
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

EXTENT_PATTERN

protected static final org.openmdx.base.naming.Path EXTENT_PATTERN

delegation

protected org.openmdx.application.dataprovider.cci.RequestCollection delegation
Constructor Detail

AccessControl_1

public AccessControl_1()
Method Detail

getUserIdentity

protected org.openmdx.base.naming.Path getUserIdentity(org.openmdx.base.naming.Path accessPath,
                                                       String qualifiedPrincipalName)

getGroupIdentity

protected org.openmdx.base.naming.Path getGroupIdentity(org.openmdx.base.naming.Path accessPath,
                                                        String qualifiedPrincipalName)

getQualifiedPrincipalName

protected String getQualifiedPrincipalName(org.openmdx.base.naming.Path accessPath,
                                           String principalName)

getQualifiedPrincipalName

protected String getQualifiedPrincipalName(org.openmdx.base.naming.Path principalIdentity)

retrieveObjectFromLocal

protected org.openmdx.application.dataprovider.cci.DataproviderObject_1_0 retrieveObjectFromLocal(org.openmdx.application.dataprovider.cci.ServiceHeader header,
                                                                                                  org.openmdx.base.naming.Path identity)
                                                                                           throws ServiceException
Throws:
ServiceException

completeOwningUserAndGroup

protected void completeOwningUserAndGroup(org.openmdx.application.dataprovider.cci.ServiceHeader header,
                                          org.openmdx.application.dataprovider.cci.DataproviderObject_1_0 object)
                                   throws ServiceException
Throws:
ServiceException

completeAccessGrantedByParent

protected void completeAccessGrantedByParent(org.openmdx.application.dataprovider.cci.ServiceHeader header,
                                             org.openmdx.application.dataprovider.cci.DataproviderObject_1_0 object,
                                             org.openmdx.application.dataprovider.cci.DataproviderObject_1_0 accessGrantedByParent)
                                      throws ServiceException
Throws:
ServiceException

completeObject

protected void completeObject(org.openmdx.application.dataprovider.cci.ServiceHeader header,
                              org.openmdx.application.dataprovider.cci.DataproviderObject_1_0 object,
                              org.openmdx.application.dataprovider.cci.DataproviderObject_1_0 accessGrantedByParent)
                       throws ServiceException
Throws:
ServiceException

completeReply

protected org.openmdx.application.dataprovider.cci.DataproviderReply completeReply(org.openmdx.application.dataprovider.cci.ServiceHeader header,
                                                                                   org.openmdx.application.dataprovider.cci.DataproviderReply reply,
                                                                                   org.openmdx.application.dataprovider.cci.DataproviderObject_1_0 accessGrantedByParent)
                                                                            throws ServiceException
Throws:
ServiceException

isPrincipalGroup

protected boolean isPrincipalGroup(org.openmdx.application.dataprovider.cci.DataproviderObject_1_0 object)
                            throws ServiceException
Throws:
ServiceException

isSecureObject

protected boolean isSecureObject(org.openmdx.application.dataprovider.cci.DataproviderObject_1_0 object)
                          throws ServiceException
Throws:
ServiceException

isSecureObject

protected boolean isSecureObject(org.openmdx.base.mof.cci.ModelElement_1_0 type)
                          throws ServiceException
Throws:
ServiceException

getRunAsRootDelegation

public org.openmdx.application.dataprovider.cci.RequestCollection getRunAsRootDelegation()

getInheritFromParentTypes

public List getInheritFromParentTypes()
Returns a list of types as path patterns of object references which inherit the security settings from the parent object. This option should be used only for performance improvements and applied only to business objects which define a self-contained security entity (e.g. contract, its positions, depot references and product configurations). Additional paths can be added by overriding getInheritFromParentTypes. The API exposes the granting parent by the reference SecureObject.accessGrantedByParent and is set by completeObject.


activate

public void activate(short id,
                     org.openmdx.application.configuration.Configuration configuration,
                     org.openmdx.application.dataprovider.spi.Layer_1_0 delegation)
              throws ServiceException
Specified by:
activate in interface org.openmdx.application.dataprovider.spi.Layer_1_0
Overrides:
activate in class Standard_1
Throws:
ServiceException

prolog

public void prolog(org.openmdx.application.dataprovider.cci.ServiceHeader header,
                   org.openmdx.application.dataprovider.cci.DataproviderRequest[] requests)
            throws ServiceException
Specified by:
prolog in interface org.openmdx.application.dataprovider.spi.Layer_1_0
Overrides:
prolog in class SystemAttributes_1
Throws:
ServiceException

epilog

public void epilog(org.openmdx.application.dataprovider.cci.ServiceHeader header,
                   org.openmdx.application.dataprovider.cci.DataproviderRequest[] requests,
                   org.openmdx.application.dataprovider.cci.DataproviderReply[] replies)
            throws ServiceException
Specified by:
epilog in interface org.openmdx.application.dataprovider.spi.Layer_1_0
Overrides:
epilog in class OptimisticLocking_1
Throws:
ServiceException

create

public org.openmdx.application.dataprovider.cci.DataproviderReply create(org.openmdx.application.dataprovider.cci.ServiceHeader header,
                                                                         org.openmdx.application.dataprovider.cci.DataproviderRequest request)
                                                                  throws ServiceException
Specified by:
create in interface org.openmdx.application.dataprovider.spi.Layer_1_0
Overrides:
create in class Standard_1
Throws:
ServiceException

getReferencedType

protected org.openmdx.base.mof.cci.ModelElement_1_0 getReferencedType(org.openmdx.base.naming.Path accessPath,
                                                                      FilterProperty[] filter)
                                                               throws ServiceException
Throws:
ServiceException

find

public org.openmdx.application.dataprovider.cci.DataproviderReply find(org.openmdx.application.dataprovider.cci.ServiceHeader header,
                                                                       org.openmdx.application.dataprovider.cci.DataproviderRequest request)
                                                                throws ServiceException
Specified by:
find in interface org.openmdx.application.dataprovider.spi.Layer_1_0
Overrides:
find in class Standard_1
Throws:
ServiceException

get

public org.openmdx.application.dataprovider.cci.DataproviderReply get(org.openmdx.application.dataprovider.cci.ServiceHeader header,
                                                                      org.openmdx.application.dataprovider.cci.DataproviderRequest request)
                                                               throws ServiceException
Specified by:
get in interface org.openmdx.application.dataprovider.spi.Layer_1_0
Overrides:
get in class Standard_1
Throws:
ServiceException

remove

public org.openmdx.application.dataprovider.cci.DataproviderReply remove(org.openmdx.application.dataprovider.cci.ServiceHeader header,
                                                                         org.openmdx.application.dataprovider.cci.DataproviderRequest request)
                                                                  throws ServiceException
Specified by:
remove in interface org.openmdx.application.dataprovider.spi.Layer_1_0
Overrides:
remove in class Standard_1
Throws:
ServiceException

replace

public org.openmdx.application.dataprovider.cci.DataproviderReply replace(org.openmdx.application.dataprovider.cci.ServiceHeader header,
                                                                          org.openmdx.application.dataprovider.cci.DataproviderRequest request)
                                                                   throws ServiceException
Specified by:
replace in interface org.openmdx.application.dataprovider.spi.Layer_1_0
Overrides:
replace in class Standard_1
Throws:
ServiceException

operation

public org.openmdx.application.dataprovider.cci.DataproviderReply operation(org.openmdx.application.dataprovider.cci.ServiceHeader header,
                                                                            org.openmdx.application.dataprovider.cci.DataproviderRequest request)
                                                                     throws ServiceException
Specified by:
operation in interface org.openmdx.application.dataprovider.spi.Operation_1_0
Overrides:
operation in class Standard_1
Throws:
ServiceException

uidAsString

protected final String uidAsString()


This software is published under the BSD license. Copyright © 2003-2009, CRIXP AG, Switzerland, All rights reserved. Use is subject to license terms.