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.archiveclient.service.archive;
35
36 import fr.paris.lutece.plugins.archiveclient.service.util.ArchiveClientConstants;
37 import fr.paris.lutece.portal.service.util.AppPropertiesService;
38 import fr.paris.lutece.util.signrequest.AbstractPrivateKeyAuthenticator;
39 import fr.paris.lutece.util.signrequest.RequestAuthenticator;
40 import fr.paris.lutece.util.url.UrlItem;
41
42 import org.apache.commons.lang.StringUtils;
43
44 import java.util.ArrayList;
45 import java.util.Date;
46 import java.util.List;
47
48
49
50
51
52
53
54 public abstract class AbstractArchiveClientService implements IArchiveClientService
55 {
56 private RequestAuthenticator _requestAuthenticatorForUrl;
57
58
59
60
61 public String getDownloadUrl( int archiveItemKey )
62 {
63 List<String> listElements = new ArrayList<String>( );
64 listElements.add( Integer.toString( archiveItemKey ) );
65
66 String strTime = Long.toString( new Date( ).getTime( ) );
67 String strSignature = ( (AbstractPrivateKeyAuthenticator) _requestAuthenticatorForUrl ).buildSignature( listElements,
68 strTime );
69
70 UrlItem url = new UrlItem( getBaseUrl( ) + ArchiveClientConstants.URL_DOWNLOAD_ARCHIVE );
71 url.addParameter( ArchiveClientConstants.PARAM_ARCHIVE_ITEM_KEY, archiveItemKey );
72 url.addParameter( ArchiveClientConstants.PARAM_SIGNATURE, strSignature );
73 url.addParameter( ArchiveClientConstants.PARAM_TIMESTAMP, strTime );
74
75 return url.getUrl( );
76 }
77
78
79
80
81
82 public void setRequestAuthenticatorForUrl( RequestAuthenticator requestAuthenticatorForUrl )
83 {
84 this._requestAuthenticatorForUrl = requestAuthenticatorForUrl;
85 }
86
87
88
89
90
91 private String getBaseUrl( )
92 {
93 String strBaseUrl = AppPropertiesService.getProperty( ArchiveClientConstants.PROPERTY_LUTECE_BASE_URL );
94
95 if ( StringUtils.isBlank( strBaseUrl ) )
96 {
97 strBaseUrl = AppPropertiesService.getProperty( ArchiveClientConstants.PROPERTY_LUTECE_PROD_URL );
98 }
99
100 return strBaseUrl;
101 }
102 }