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.genericattributes.service.anonymization;
35
36 import java.io.IOException;
37 import java.nio.file.Path;
38 import java.nio.file.Paths;
39
40 import org.apache.commons.io.FileUtils;
41 import org.apache.commons.io.FilenameUtils;
42
43 import fr.paris.lutece.plugins.genericattributes.business.Entry;
44 import fr.paris.lutece.plugins.genericattributes.business.Response;
45 import fr.paris.lutece.plugins.genericattributes.service.file.GenericAttributeFileService;
46 import fr.paris.lutece.portal.business.file.File;
47 import fr.paris.lutece.portal.business.file.FileHome;
48 import fr.paris.lutece.portal.service.util.AppLogService;
49 import fr.paris.lutece.portal.service.util.AppPathService;
50
51
52
53
54 public class FileReplaceAnonymizationService extends AbstractAnonymizationService
55 {
56
57 private static final String FILES_DIRECTORY = "/WEB-INF/anonymization/";
58
59 @Override
60 public void anonymizeResponse( Entry entry, Response response, boolean first )
61 {
62 if ( isAnonymizable( entry ) )
63 {
64 String pattern = getPattern( entry );
65 if ( pattern.contains( _wildcard ) && response.getFile( ) != null )
66 {
67 File responseFile = GenericAttributeFileService.getInstance().load( response.getFile( ).getFileKey( ) );
68
69 if ( responseFile != null )
70 {
71 String fileType = FilenameUtils.getExtension( responseFile.getTitle( ) );
72
73 try
74 {
75 java.io.File emptyFile = getEmptyFile( "empty." + fileType );
76 responseFile.setTitle( emptyFile.getName( ) );
77 responseFile.setSize( (int) emptyFile.length( ) );
78 responseFile.getPhysicalFile( ).setValue( FileUtils.readFileToByteArray( emptyFile ) );
79 response.setFile( responseFile );
80 }
81 catch( IOException e )
82 {
83 AppLogService.error( "Error while replacing file", e );
84 GenericAttributeFileService.getInstance().delete( response.getFile( ).getFileKey( ) );
85 response.setFile( null );
86 }
87 }
88 else
89 {
90 response.setFile( null );
91 }
92 }
93 }
94 }
95
96 private java.io.File getEmptyFile( String filename )
97 {
98 Path path = Paths.get( AppPathService.getWebAppPath( ), FILES_DIRECTORY, filename );
99
100 if ( !path.toFile( ).exists( ) )
101 {
102 path = Paths.get( AppPathService.getWebAppPath( ), FILES_DIRECTORY, "empty.txt" );
103 }
104 return path.toFile( );
105 }
106 }