1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package fr.paris.lutece.plugins.crm.service.security;
35
36 import fr.paris.lutece.plugins.crm.business.user.CRMUser;
37 import fr.paris.lutece.plugins.crm.service.user.CRMUserService;
38 import fr.paris.lutece.portal.service.util.AppPropertiesService;
39 import fr.paris.lutece.portal.service.util.CryptoService;
40
41 import java.util.Locale;
42 import java.util.Map;
43 import java.util.Map.Entry;
44
45
46
47
48
49
50 public class CRMUserAnonymizationService implements IAnonymizationService
51 {
52
53 public static final String BEAN_SERVICE = "crm.crmUserAnonymizationService";
54
55
56 private static final String PROPERTY_ANONYMIZATION_ENCRYPT_ALGO = "security.anonymization.encryptAlgo";
57
58
59 private static final String CONSTANT_DEFAULT_ENCRYPT_ALGO = "SHA-256";
60
61
62
63
64 @Override
65 public void anonymizeUser( int nIdUser, Locale locale )
66 {
67 CRMUser user = CRMUserService.getService( ).findByPrimaryKey( nIdUser );
68
69 if ( user != null )
70 {
71 String strEncryptionAlgorithme = AppPropertiesService.getProperty( PROPERTY_ANONYMIZATION_ENCRYPT_ALGO, CONSTANT_DEFAULT_ENCRYPT_ALGO );
72 user.setUserGuid( CryptoService.encrypt( user.getUserGuid( ), strEncryptionAlgorithme ) );
73
74 Map<String, String> userInfos = user.getUserAttributes( );
75
76 for ( Entry<String, String> param : userInfos.entrySet( ) )
77 {
78 userInfos.put( param.getKey( ), CryptoService.encrypt( param.getValue( ), strEncryptionAlgorithme ) );
79 }
80
81 user.setUserAttributes( userInfos );
82 user.setStatus( CRMUser.STATUS_ANONYMIZED );
83 CRMUserService.getService( ).update( user );
84 }
85 }
86 }