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.document.web;
35
36 import java.io.IOException;
37 import java.util.Map.Entry;
38
39 import javax.servlet.Filter;
40 import javax.servlet.FilterChain;
41 import javax.servlet.FilterConfig;
42 import javax.servlet.ServletException;
43 import javax.servlet.ServletRequest;
44 import javax.servlet.ServletResponse;
45 import javax.servlet.http.HttpServletRequest;
46 import javax.servlet.http.HttpServletResponse;
47
48 import fr.paris.lutece.portal.service.util.AppPropertiesService;
49 import fr.paris.lutece.util.url.UrlItem;
50
51
52
53
54
55
56
57
58
59 public class DocumentLegacyServletRedirectFilter implements Filter
60 {
61
62 private static final String PROPERTY_RESOURCE_PROVIDER_URL = "document.resource.provider.url";
63 private static final String DEFAULT_RESOURCE_SERVLET = "servlet/plugins/document/resource";
64
65
66
67
68 public void doFilter( ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain ) throws IOException, ServletException
69 {
70 HttpServletRequest httpServletRequest = ( HttpServletRequest ) servletRequest;
71 HttpServletResponse httpServletResponse = ( HttpServletResponse ) servletResponse;
72 String strNewServletResource = AppPropertiesService.getProperty( PROPERTY_RESOURCE_PROVIDER_URL );
73 if ( strNewServletResource != null ) {
74 int nIdx = strNewServletResource.indexOf( '?' );
75 if ( nIdx != -1 ) {
76 strNewServletResource = strNewServletResource.substring( 0, nIdx );
77 }
78 } else {
79 strNewServletResource = DEFAULT_RESOURCE_SERVLET;
80 }
81
82 UrlItem urlItem = new UrlItem( strNewServletResource );
83 for ( Entry<String, String[]> entryParameter: httpServletRequest.getParameterMap( ).entrySet( ) ) {
84 for ( String value: entryParameter.getValue( ) ) {
85 urlItem.addParameter( entryParameter.getKey( ), value );
86 }
87 }
88
89 httpServletResponse.setStatus( HttpServletResponse.SC_MOVED_PERMANENTLY );
90 httpServletResponse.setHeader( "Location", urlItem.getUrl( ) );
91 }
92
93 @Override
94 public void destroy( ) {
95
96 }
97
98 @Override
99 public void init( FilterConfig filterConfig ) throws ServletException {
100
101 }
102 }