Personal data obfuscation class hierarchy

As shown in the following object model diagram, PolicyCenter provides the following class hierarchy for personal data obfuscation:



There are two main branches in this class hierarchy:

  • DefaultPersonalDataObfuscator and its subclasses UserContactLinkedObfuscator, UserDefaultObfuscator, CredentialDefaultObuscator, and UserContactDefaultObfuscator are available in all core applications. Its subclasses define base configuration behavior to enable obfuscating User, UserContact, and Credential and related objects. For example:
    • UserContactLinkedObfuscator overrides the shouldObfuscate method. That method calls the shouldDestroyUser method defined in the PersonalDataDestruction plugin to get the setting for UserContact. For example, in the base configuration the setting is MUST_NOT_DESTROY.
    • UserDefaultObfuscator overrides a beforeObfuscate method. That method throws an exception if the user’s credential is active because that means the user is still active. If the user is not active, the method calls user.Credential.obfuscate and user.Contact.obfuscate and removes the arrays of join entities AttributeUser and UserRegion.
    • UserContactDefaultObfuscator attempts to obfuscate or remove any contact addresses, official IDs, category scores, and tags associated with the UserContact that can be destroyed.
    • CredentialDefaultObfuscator overrides the beforeObfuscate method, which stops the obfuscation if the credential is active.
  • PCPersonalDataObfuscator is the base class of a set of classes used to define obfuscation of specific entities, such as UserContact and PCOfficialID. You can extend this class to define how obfuscation works on an entity. You specify the class in the entity’s implementsEntity declaration for the Obfuscation class. For example:
    • UserContactObfuscator attempts to remove any associated primary address, contact addresses, and official IDs from the UserContact object. Additionally, the method getObfuscatedValueForPersonalDataField defines obfuscation behavior for a field that is tagged ObfuscateUnique.