Personal data obfuscation class hierarchy
ContactManager provides the following class hierarchy for personal data obfuscation:
DefaultPersonalDataObfuscator and its subclasses define base configuration behavior to enable obfuscating User, UserContact, and Credential and related objects. For example:
- DefaultPersonalDataObfuscator overrides the method getObfuscatedValueForPersonalDataField and defines default obfuscation behavior for fields that are tagged
OfuscateUnique. The method handles ObfuscateUnique by calling PersonalDataObfuscatorUtil to get an MD5 hash value for the field. - 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 isMUST_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
AttributeUserandUserRegion. - UserContactDefaultObfuscator attempts to obfuscate or remove any contact addresses, official IDs, category scores, and tags associated with the
UserContactthat can be destroyed. - CredentialDefaultObfuscator overrides the beforeObfuscate method, which stops the obfuscation if the credential is active.
