Mercurial > hg > AnnotationManagerN4J
comparison src/main/java/de/mpiwg/itgroup/annotations/restlet/utils/UrlPrefixFilter.java @ 94:fcb6fe10e08c
added config option for webapp URL prefix.
author | casties |
---|---|
date | Tue, 10 Feb 2015 17:45:56 +0100 |
parents | |
children | 8fefa4651d00 |
comparison
equal
deleted
inserted
replaced
91:cf44d9e1a4a7 | 94:fcb6fe10e08c |
---|---|
1 package 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 | |
25 import org.restlet.Request; | |
26 import org.restlet.Response; | |
27 import org.restlet.data.Reference; | |
28 import org.restlet.routing.Filter; | |
29 | |
30 /** | |
31 * Filter that adds a prefix path to all internally generated URLs. | |
32 * | |
33 * @author casties | |
34 * | |
35 */ | |
36 public 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 } |