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, andCredentialand 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 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.
- UserContactLinkedObfuscator overrides the shouldObfuscate method. That method calls the shouldDestroyUser method defined in the PersonalDataDestruction plugin to get the setting for
PCPersonalDataObfuscatoris the base class of a set of classes used to define obfuscation of specific entities, such asUserContactandPCOfficialID. You can extend this class to define how obfuscation works on an entity. You specify the class in the entity’simplementsEntitydeclaration for the Obfuscation class. For example:UserContactObfuscatorattempts 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 taggedObfuscateUnique.
