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.rss.web.filter;
35
36 import fr.paris.lutece.plugins.rss.business.RssGeneratedFileHome;
37 import fr.paris.lutece.plugins.rss.service.RssGeneratorService;
38 import fr.paris.lutece.portal.service.util.AppLogService;
39 import fr.paris.lutece.portal.service.util.AppPathService;
40 import fr.paris.lutece.portal.service.util.AppPropertiesService;
41
42 import java.io.File;
43 import java.io.IOException;
44
45 import javax.servlet.Filter;
46 import javax.servlet.FilterChain;
47 import javax.servlet.FilterConfig;
48 import javax.servlet.ServletException;
49 import javax.servlet.ServletRequest;
50 import javax.servlet.ServletResponse;
51 import javax.servlet.http.HttpServletRequest;
52
53
54
55
56
57
58 public class RssGeneratorFilter implements Filter
59 {
60
61
62
63
64 @Override
65 public void destroy( )
66 {
67
68 }
69
70
71
72
73
74 @Override
75 public void doFilter( ServletRequest servletRequest, ServletResponse response, FilterChain chain )
76 throws IOException, ServletException
77 {
78 HttpServletRequest request = (HttpServletRequest) servletRequest;
79
80 String strURI = request.getRequestURI( );
81 String strRssStorageRoot = AppPropertiesService.getProperty( RssGeneratorService.PROPERTY_RSS_STORAGE_FOLDER_PATH );
82 strRssStorageRoot = ( strRssStorageRoot.endsWith( "/" ) ) ? strRssStorageRoot : ( strRssStorageRoot + "/" );
83
84 String strRssName = strURI.substring( strURI.indexOf( strRssStorageRoot ) + strRssStorageRoot.length( ) );
85 String strRssPath = AppPathService.getPath( RssGeneratorService.PROPERTY_RSS_STORAGE_FOLDER_PATH, strRssName );
86 File dirRSS = new File( strRssPath );
87
88 if ( !dirRSS.exists( ) )
89 {
90 AppLogService.info( "Requested RSS file '" + strRssName + "' not found in the file system." );
91
92 if ( RssGeneratedFileHome.checkRssFileFileName( strRssName ) )
93 {
94 AppLogService.info( "Requested RSS file '" + strRssName + "' exists. File regenerated inf file system" );
95 RssGeneratorService.generateAllRss( );
96 }
97 else
98 {
99 AppLogService.info( "Requested RSS file '" + strRssName + "' doesn't exist in database." );
100 }
101 }
102
103 chain.doFilter( servletRequest, response );
104 }
105
106
107
108
109
110 @Override
111 public void init( FilterConfig config ) throws ServletException
112 {
113
114 }
115 }