source: AnnotationManagerN4J/src/main/java/de/mpiwg/itgroup/annotations/restlet/utils/UrlPrefixFilter.java @ 94:fcb6fe10e08c

Last change on this file since 94:fcb6fe10e08c was 94:fcb6fe10e08c, checked in by casties, 9 years ago

added config option for webapp URL prefix.

File size: 1.8 KB
Line 
1package de.mpiwg.itgroup.annotations.restlet.utils;
2
3/*
4 * #%L
5 * AnnotationManager
6 * %%
7 * Copyright (C) 2012 - 2015 MPIWG Berlin
8 * %%
9 * This program is free software: you can redistribute it and/or modify
10 * it under the terms of the GNU Lesser General Public License as
11 * published by the Free Software Foundation, either version 3 of the
12 * License, or (at your option) any later version.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 * GNU General Lesser Public License for more details.
18 *
19 * You should have received a copy of the GNU General Lesser Public
20 * License along with this program.  If not, see
21 * <http://www.gnu.org/licenses/lgpl-3.0.html>.
22 * #L%
23 */
24
25import org.restlet.Request;
26import org.restlet.Response;
27import org.restlet.data.Reference;
28import org.restlet.routing.Filter;
29
30/**
31 * Filter that adds a prefix path to all internally generated URLs.
32 *
33 * @author casties
34 *
35 */
36public class UrlPrefixFilter extends Filter {
37
38        private String prefix = null;
39       
40        /**
41         * Set the prefix to add.
42         *
43         * @param prefix
44         */
45        public void setPrefix(String prefix) {
46                if (!prefix.startsWith("/")) {
47                        prefix = "/" + prefix;
48                }
49                this.prefix = prefix;
50        }
51       
52        @Override
53        protected int beforeHandle(Request request, Response response) {
54                // get ref to change
55            Reference ref = request.getResourceRef();
56            String path = ref.getPath();
57            // add prefix to path
58            ref.setPath(prefix + path);
59            // change baseRef as well
60            Reference baseRef = ref.getBaseRef();
61            String basePath = baseRef.getPath();
62            // add prefix to base ref path
63            baseRef.setPath(prefix + basePath);
64                return super.beforeHandle(request, response);
65        }
66
67}
Note: See TracBrowser for help on using the repository browser.