public class GenericSecuredMutableRepository extends GenericSecuredRepository implements SecuredMutableRepository
This implementation is not intended to provide absolute security, but rather to allow an application the ability to provide security features without having to implement its own access checking.
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
CLASS_VERSION |
protected atg.adapter.secure.WeakItemCache |
mMutableItemCache
A cache of secured repository items indexed by the repository
item.
|
mItemCache, mRepository, mSecurityConfiguration, mTransactionManager
SERVICE_INFO_KEY
DEFAULT_LOG_TRACE_STATUS
DEFAULT_LOG_DEBUG_STATUS, DEFAULT_LOG_ERROR_STATUS, DEFAULT_LOG_INFO_STATUS, DEFAULT_LOG_WARNING_STATUS
Constructor and Description |
---|
GenericSecuredMutableRepository() |
Modifier and Type | Method and Description |
---|---|
RepositoryItem |
addItem(MutableRepositoryItem pItem)
Adds the supplied item populated to the repository.
|
RepositoryItem |
addItem(RepositoryItem pItem,
java.lang.String pDescriptorName)
Deprecated.
|
MutableRepositoryItem |
createItem(java.lang.String pDescriptorName)
Returns a new item using an auto-generated unique id.
|
MutableRepositoryItem |
createItem(java.lang.String pId,
java.lang.String pDescriptorName)
Returns a new item populated with the supplied id.
|
MutableRepositoryItem[] |
filterMutableItems(MutableRepositoryItem[] pItems,
AccessRight pRight)
Filters out any repository items returned from a query that the user
should not be able to access in the indicated mode.
|
MutableRepositoryItem |
getItemForUpdate(java.lang.String pId)
Deprecated.
|
MutableRepositoryItem |
getItemForUpdate(java.lang.String pId,
java.lang.String pDescriptorName)
If one wants write access to an item it should be retrieved
through this method.
|
MutableRepositoryItem[] |
getItemsForUpdate(java.lang.String[] pIds)
If one wants write access to a set of items they should be retrieved
through this method.
|
MutableRepositoryItem[] |
getItemsForUpdate(java.lang.String[] pIds,
java.lang.String pDescriptorName)
If one wants write access to a set of items they should be retrieved
through this method.
|
void |
removeItem(java.lang.String pId)
Deprecated.
|
void |
removeItem(java.lang.String pId,
java.lang.String pDescriptorName)
Removes an item from the Repository permanently.
|
void |
setRepository(Repository pRepository)
Makes a copy of the repository reference as a mutable repository.
|
void |
updateItem(MutableRepositoryItem pItem)
Updates the item's values into the Repository.
|
addDynamicSubtype, checkAccess, checkAccess, checkAccess, checkForInvalidRepository, doStartService, filterItems, getComponentResourceBundleName, getConfigurationFile, getDefaultViewName, getItem, getItem, getItemDescriptor, getItemDescriptor, getItemDescriptorNames, getItems, getItems, getQueryEndIndexFactor, getQueryMinimumQuerySize, getRepository, getRepositoryDisplayName, getRepositoryDisplayNameResource, getRepositoryName, getSecurityConfiguration, getSecurityPolicy, getTransactionManager, getView, getView, getViewNames, getWrappedRepositories, getWrappedRepository, getXMLToolsFactory, hasAccess, isDisableSecurityEnhancements, receiveEvent, removeDynamicSubtype, setComponentResourceBundleName, setConfigurationFile, setDisableSecurityEnhancements, setQueryEndIndexFactor, setQueryMinimumQuerySize, setRepositoryDisplayNameResource, setRepositoryName, setSecurityConfiguration, setTransactionManager, setXMLToolsFactory, unwrapArray, unwrapList, unwrapMap, unwrapSet, unwrapValue, wrapItems
addLogListener, createAdminServlet, doStopService, getAbsoluteName, getAdminServlet, getAdminServletOutputStreamEncoding, getLoggingForVlogging, getLogListenerCount, getLogListeners, getName, getNameContext, getNucleus, getRoot, getServiceConfiguration, getServiceInfo, isAdminServletUseServletOutputStream, isLoggingDebug, isLoggingError, isLoggingInfo, isLoggingTrace, isLoggingWarning, isRunning, logDebug, logDebug, logDebug, logError, logError, logError, logInfo, logInfo, logInfo, logTrace, logTrace, logTrace, logWarning, logWarning, logWarning, nameContextElementBound, nameContextElementUnbound, removeLogListener, reResolveThis, resolveName, resolveName, resolveName, resolveName, sendLogEvent, setAdminServletOutputStreamEncoding, setAdminServletUseServletOutputStream, setLoggingDebug, setLoggingError, setLoggingInfo, setLoggingTrace, setLoggingWarning, setNucleus, setServiceInfo, startService, stopService
vlogDebug, vlogDebug, vlogDebug, vlogDebug, vlogDebugTrace, vlogError, vlogError, vlogError, vlogError, vlogInfo, vlogInfo, vlogInfo, vlogInfo, vlogTrace, vlogTrace, vlogTrace, vlogTrace, vlogWarning, vlogWarning, vlogWarning, vlogWarning
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
getSecurityConfiguration, getSecurityPolicy
getDefaultViewName, getItem, getItem, getItemDescriptor, getItemDescriptor, getItemDescriptorNames, getItems, getItems, getRepositoryName, getView, getView, getViewNames
public static java.lang.String CLASS_VERSION
protected atg.adapter.secure.WeakItemCache mMutableItemCache
public MutableRepositoryItem[] filterMutableItems(MutableRepositoryItem[] pItems, AccessRight pRight)
public void setRepository(Repository pRepository)
setRepository
in class GenericSecuredRepository
public MutableRepositoryItem getItemForUpdate(java.lang.String pId) throws RepositoryException
getItemForUpdate
in interface MutableRepository
pId
- the id of the item to update.RepositoryException
- if the item could be retreived for updatespublic MutableRepositoryItem getItemForUpdate(java.lang.String pId, java.lang.String pDescriptorName) throws RepositoryException
getItemForUpdate
in interface MutableRepository
pId
- the id of the item to update.pDescriptorName
- the name of the type of item to update.RepositoryException
- if the item could be retreived for updatespublic MutableRepositoryItem[] getItemsForUpdate(java.lang.String[] pIds) throws RepositoryException
The caller must have LIST access on each item that is requested or that item's slot will be set to null following this query. Note that the ability to actually update the item will be controlled by the item itself and by the item descriptor when the actual call to updateItem() is attempted.
getItemsForUpdate
in interface MutableRepository
RepositoryException
- if the item could be retreived for updatespublic MutableRepositoryItem[] getItemsForUpdate(java.lang.String[] pIds, java.lang.String pDescriptorName) throws RepositoryException
The caller must have LIST access on each item that is requested or that item's slot will be set to null following this query. Note that the ability to actually update the item will be controlled by the item itself and by the item descriptor when the actual call to updateItem() is attempted.
getItemsForUpdate
in interface MutableRepository
pIds
- the list of ids of items to retrieve for updatepDescriptorName
- the name of the item descriptor that contains
these items.RepositoryException
- if the item could be retreived for updatespublic MutableRepositoryItem createItem(java.lang.String pDescriptorName) throws RepositoryException
The caller must have CREATE access on the item descriptor for this operation to succeed.
createItem
in interface MutableRepository
pDescriptorName
- the name of the RepositoryItemDescriptor
which should be used as the "template" to create the itemRepositoryException
- if the item could not be createdpublic MutableRepositoryItem createItem(java.lang.String pId, java.lang.String pDescriptorName) throws RepositoryException
The new item is not added to the repository; addItem
must be called in order to change the repository.
The caller must have CREATE access on the item descriptor for this operation to succeed.
createItem
in interface MutableRepository
pId
- the id to use in an attempt to create the RepositoryItempDescriptorName
- the name of the RepositoryItemDescriptor
which should be used as the "template" to create the itemRepositoryException
- if the item could not be createdDuplicateIdException
- if the id is already in usepublic RepositoryItem addItem(RepositoryItem pItem, java.lang.String pDescriptorName) throws RepositoryException
The caller must have WRITE access on the item descriptor for this operation to succeed. Note that the attempt to create a new item would already have failed if the caller did not have CREATE access.
addItem
in interface MutableRepository
pItem
- the item to addpDescriptorName
- the name of the RepositoryItemDescriptor
which should be used as the "template" to add the itemRepositoryException
- if the item could not be addedpublic RepositoryItem addItem(MutableRepositoryItem pItem) throws RepositoryException
The caller must have WRITE access on the item descriptor for this operation to succeed. Note that the attempt to create a new item would already have failed if the caller did not have CREATE access.
addItem
in interface MutableRepository
pItem
- the item to addRepositoryException
- if the item could not be addedpublic void updateItem(MutableRepositoryItem pItem) throws RepositoryException
As of version 5.5p1, the caller need not have any special permission to call this method. Modification access is expected to be controlled by either the per-item ACL or the default ACL provided by the item descriptor.
updateItem
in interface MutableRepository
pItem
- the item to updateRepositoryException
- if the item could not be updatedConcurrentUpdateException
- if the item has been changed in
another transaction since this transaction started using this item.public void removeItem(java.lang.String pId) throws RepositoryException
The caller must have both DELETE access on the item descriptor and DESTROY access on the item for this operation to succeed.
removeItem
in interface MutableRepository
pItem
- the item to removeRepositoryException
- if the item could not be deletedpublic void removeItem(java.lang.String pId, java.lang.String pDescriptorName) throws RepositoryException
The caller must have both DELETE access on the item descriptor and DESTROY access on the item for this operation to succeed.
removeItem
in interface MutableRepository
pItem
- the item to removepDescriptorName
- the name of the item descriptor that contains
this item.RepositoryException
- if the item could not be deleted