Class DefaultSensitivePropertyManager

java.lang.Object
com.complexible.stardog.api.admin.DefaultSensitivePropertyManager
All Implemented Interfaces:
SensitivePropertyManager

public class DefaultSensitivePropertyManager extends Object implements SensitivePropertyManager
The default implementation of the SensitivePropertyManager interface using a database connection. This implementation retrieves the database configuration options SecurityOptions.SENSITIVE_PROPERTIES and SecurityOptions.SENSITIVE_PROPERTY_GROUPS first. Modifications are applied to the local copy first and then applied to the database metadata overriding any changes that might have occurred after the snapshot was created. If two users try to update the sensitive properties at the same time changes of one user might be lost as a result.
Author:
Evren Sirin
  • Constructor Details

    • DefaultSensitivePropertyManager

      public DefaultSensitivePropertyManager(Connection theConnection)
  • Method Details

    • getGroups

      public Set<String> getGroups()
      Description copied from interface: SensitivePropertyManager
      Returns the sensitive property groups defined for the database.
      Specified by:
      getGroups in interface SensitivePropertyManager
      Returns:
      unmodifiable set of group names
    • getProperties

      public Set<IRI> getProperties(String theGroup)
      Description copied from interface: SensitivePropertyManager
      Returns the sensitive properties associated with a given group.
      Specified by:
      getProperties in interface SensitivePropertyManager
      Parameters:
      theGroup - group name
      Returns:
      unmodifiable set of properties or empty set if the group is not defined
    • removeGroup

      public boolean removeGroup(String theGroup)
      Description copied from interface: SensitivePropertyManager
      Removes the given sensitive property group from the database. The properties associated with the group will not be sensitive anymore unless they are included in other groups.
      Specified by:
      removeGroup in interface SensitivePropertyManager
      Parameters:
      theGroup - group name
      Returns:
      true if the group was removed as a result of this call
    • setProperties

      public void setProperties(String theGroup, Set<IRI> theProperties)
      Description copied from interface: SensitivePropertyManager
      Associates a set of properties with a group name. If the set is empty then the grouped will be removed except for the default group that will always exist even with empty set of properties. If the group already existed, associated properties will be replaced with the given properties. New groups will be added with the given properties.
      Specified by:
      setProperties in interface SensitivePropertyManager
      Parameters:
      theGroup - schema name
      theProperties - set of named graphs