public class PersistenceSecurityImpl extends SecurityImpl implements PersistenceSecurity
Modifier and Type | Class and Description |
---|---|
protected static class |
PersistenceSecurityImpl.EntityId |
Modifier and Type | Field and Description |
---|---|
protected AttributeSecuritySupport |
attributeSecuritySupport |
protected Configuration |
configuration |
protected EntityStates |
entityStates |
protected GlobalConfig |
globalConfig |
protected Persistence |
persistence |
protected ReferenceToEntitySupport |
referenceToEntitySupport |
protected SecurityTokenManager |
securityTokenManager |
extendedEntities, metadata, metadataTools, scripting, userSessionSource
CONSTRAINT_PARAM_SESSION_ATTR, CONSTRAINT_PARAM_USER_GROUP_ID, CONSTRAINT_PARAM_USER_ID, CONSTRAINT_PARAM_USER_LOGIN, NAME
Constructor and Description |
---|
PersistenceSecurityImpl() |
Modifier and Type | Method and Description |
---|---|
void |
applyConstraints(java.util.Collection<Entity> entities)
Applies in-memory constraints to the entity fields by filtered data
|
void |
applyConstraints(Entity entity)
Applies in-memory constraints to the entity by filtered data
|
protected void |
applyConstraints(Entity entity,
java.util.Set<PersistenceSecurityImpl.EntityId> handled) |
boolean |
applyConstraints(Query query)
Modifies the query depending on current user's security constraints.
|
protected void |
assertSecurityConstraints(Entity entity,
java.util.function.BiPredicate<Entity,com.haulmont.chile.core.model.MetaProperty> predicate) |
void |
assertToken(Entity entity)
Validate that security token exists for specific cases.
|
protected void |
assertTokenForAttributeAccess(Entity entity) |
void |
assertTokenForREST(Entity entity,
View view)
Validate that security token for REST exists for specific cases.
|
void |
calculateFilteredData(java.util.Collection<Entity> entities)
Calculate filtered data
|
void |
calculateFilteredData(Entity entity)
Calculate filtered data
|
protected boolean |
calculateFilteredData(Entity entity,
java.util.Set<PersistenceSecurityImpl.EntityId> handled,
boolean checkPermitted) |
boolean |
filterByConstraints(java.util.Collection<Entity> entities)
Filter entities in collection by in-memory constraints
|
boolean |
filterByConstraints(Entity entity)
Filter entity by in-memory constraints
|
protected boolean |
isPermittedInMemory(Entity entity) |
protected void |
processConstraint(QueryTransformer transformer,
ConstraintData constraint,
java.lang.String entityName) |
void |
restoreFilteredData(Entity entity)
Restores filtered data from security token
|
void |
restoreSecurityState(Entity entity)
Reads security token and restores security state
|
void |
setQueryParam(Query query,
java.lang.String paramName)
Sets the query param to a value provided by user session (see constants above).
|
checkSpecificPermission, evaluateConstraintScript, fillGroovyConstraintsContext, getConstraints, getConstraints, hasConstraints, hasInMemoryConstraints, isEntityAttrPermitted, isEntityAttrPermitted, isEntityAttrPermitted, isEntityAttrReadPermitted, isEntityAttrReadPermitted, isEntityAttrUpdatePermitted, isEntityAttrUpdatePermitted, isEntityOpPermitted, isEntityOpPermitted, isPermitted, isPermitted, isPermitted, isPermitted, isScreenPermitted, isSpecificPermitted, parseValue
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
restoreSecurityStateAndFilteredData
checkSpecificPermission, evaluateConstraintScript, hasConstraints, hasInMemoryConstraints, isEntityAttrPermitted, isEntityAttrPermitted, isEntityAttrReadPermitted, isEntityAttrReadPermitted, isEntityAttrUpdatePermitted, isEntityAttrUpdatePermitted, isEntityOpPermitted, isEntityOpPermitted, isPermitted, isPermitted, isScreenPermitted, isSpecificPermitted
@Inject protected SecurityTokenManager securityTokenManager
@Inject protected Configuration configuration
@Inject protected Persistence persistence
@Inject protected ReferenceToEntitySupport referenceToEntitySupport
@Inject protected AttributeSecuritySupport attributeSecuritySupport
@Inject protected EntityStates entityStates
@Inject protected GlobalConfig globalConfig
public boolean applyConstraints(Query query)
PersistenceSecurity
applyConstraints
in interface PersistenceSecurity
query
- query to modifypublic void setQueryParam(Query query, java.lang.String paramName)
PersistenceSecurity
setQueryParam
in interface PersistenceSecurity
query
- Query instanceparamName
- parameter to setpublic boolean filterByConstraints(java.util.Collection<Entity> entities)
PersistenceSecurity
filterByConstraints
in interface PersistenceSecurity
entities
- - collection of entities that will be filteredpublic boolean filterByConstraints(Entity entity)
PersistenceSecurity
filterByConstraints
in interface PersistenceSecurity
entity
- - entity that will be filteredpublic void applyConstraints(java.util.Collection<Entity> entities)
PersistenceSecurity
applyConstraints
in interface PersistenceSecurity
entities
- - collection of entitiespublic void applyConstraints(Entity entity)
PersistenceSecurity
applyConstraints
in interface PersistenceSecurity
entity
- -public void calculateFilteredData(Entity entity)
PersistenceSecurity
calculateFilteredData
in interface PersistenceSecurity
entity
- for which will calculate filtered datapublic void calculateFilteredData(java.util.Collection<Entity> entities)
PersistenceSecurity
calculateFilteredData
in interface PersistenceSecurity
entities
- - collection of entities for which will calculate filtered datapublic void restoreSecurityState(Entity entity)
PersistenceSecurity
restoreSecurityState
in interface PersistenceSecurity
entity
- - entity to restore security statepublic void restoreFilteredData(Entity entity)
PersistenceSecurity
restoreFilteredData
in interface PersistenceSecurity
entity
- - entity to restore filtered datapublic void assertToken(Entity entity)
PersistenceSecurity
assertToken
in interface PersistenceSecurity
entity
- - entity to check security tokenpublic void assertTokenForREST(Entity entity, View view)
PersistenceSecurity
assertTokenForREST
in interface PersistenceSecurity
entity
- - entity to check security tokenview
- - view for entityprotected void assertSecurityConstraints(Entity entity, java.util.function.BiPredicate<Entity,com.haulmont.chile.core.model.MetaProperty> predicate)
protected void assertTokenForAttributeAccess(Entity entity)
protected void processConstraint(QueryTransformer transformer, ConstraintData constraint, java.lang.String entityName)
protected void applyConstraints(Entity entity, java.util.Set<PersistenceSecurityImpl.EntityId> handled)
protected boolean calculateFilteredData(Entity entity, java.util.Set<PersistenceSecurityImpl.EntityId> handled, boolean checkPermitted)
protected boolean isPermittedInMemory(Entity entity)