Dateiverwaltung für die WebBox
ulrich
2017-02-20 2121ccd4015d7c0dc81485fcaf8655bde28ea396
commit | author | age
2121cc 1 /*
U 2     Dateiverwaltung - File management in your browser
3     Copyright (C) 2017 Ulrich Hilger, http://uhilger.de
4
5     This program is free software: you can redistribute it and/or modify
6     it under the terms of the GNU Affero General Public License as
7     published by the Free Software Foundation, either version 3 of the
8     License, or (at your option) any later version.
9
10     This program is distributed in the hope that it will be useful,
11     but WITHOUT ANY WARRANTY; without even the implied warranty of
12     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13     GNU Affero General Public License for more details.
14
15     You should have received a copy of the GNU Affero General Public License
16     along with this program.  If not, see <http://www.gnu.org/licenses/>.
17 */
18
19 package de.uhilger.filecms.web;
20
21 import java.io.IOException;
22 import java.util.logging.Logger;
23 import javax.servlet.Filter;
24 import javax.servlet.FilterChain;
25 import javax.servlet.FilterConfig;
26 import javax.servlet.ServletException;
27 import javax.servlet.ServletRequest;
28 import javax.servlet.ServletResponse;
29 import javax.servlet.http.HttpServletRequest;
30
31 /**
32  * Filter fuer das home-Verzeichnis
33  * 
34  * Nur Inhalte des angemeldeten Benutzers werden ausgegeben
35  *
36  * @author Copyright (c) Ulrich Hilger, http://uhilger.de
37  * @author Published under the terms and conditions of the
38  * <a href="http://www.gnu.org/licenses/agpl-3.0" target="_blank">GNU Affero
39  * General Public License</a>
40  *
41  * @version 2, February 1, 2017
42  */
43 public class HomeFilter implements Filter {
44   
45   private static final Logger logger = Logger.getLogger(HomeFilter.class.getName());
46   
47   private static final String ZIEL = "../api?c=de.uhilger.um.api.UserMgr&m=";
48
49   @Override
50   public void init(FilterConfig filterConfig) throws ServletException {
51     // ...
52   }
53
54   /*
55
56     Dieser Filter laesst nur Anfragen durch, die in username 
57     denselben Eintrag haben wie der Name des angemeldeten Benutzers.
58   
59     http]://example.com/file-cms/home/username/test.txt
60
61   
62     hier wird ein URL wie z.B. 
63     http]://example.com/um/svc/testmethode
64     umgesetzt auf
65     http]://example.com/um/api?c=de.uhilger.um.api.UserMgr&m=testmethode
66   
67     der Teil 'svc' ist im Filter Mapping des Deployment Descriptor 
68     deklariert. Der Teil 'api' zeigt mit Hilfe eines Servlet 
69     Mappings im Deployment Descriptor auf das Transit-Servlet.
70   
71     der statische Teil des Ziel-URL ist hier hart kodiert, das kann man 
72     freilich je nach Bedarf noch dynamisch gestalten
73   */
74   
75   @Override
76   public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
77     
78     if(request instanceof HttpServletRequest) {
79       HttpServletRequest hr = (HttpServletRequest) request;
80       logger.info("requestURL: " + hr.getRequestURL().toString());
81       chain.doFilter(request, response);
82     }    
83     /*
84     if(request instanceof HttpServletRequest) {
85       HttpServletRequest hr = (HttpServletRequest) request;
86       String servletPath = hr.getServletPath();
87       String[] path = servletPath.split("/");
88       request.getRequestDispatcher(ZIEL + path[2]).forward(request, response);
89     }
90     */
91   }
92
93   @Override
94   public void destroy() {
95     // ...
96   }
97   
98 }