source: AnnotationManagerN4J/src/main/java/de/mpiwg/itgroup/annotations/restlet/AnnotatorRestlet.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: 3.0 KB
Line 
1package de.mpiwg.itgroup.annotations.restlet;
2
3/*
4 * #%L
5 * AnnotationManager
6 * %%
7 * Copyright (C) 2012 - 2014 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 java.util.Arrays;
26import java.util.HashSet;
27
28import org.restlet.Restlet;
29import org.restlet.engine.application.CorsFilter;
30import org.restlet.routing.Router;
31
32import de.mpiwg.itgroup.annotations.restlet.utils.UrlPrefixFilter;
33
34/**
35 * @author casties
36 *
37 */
38public class AnnotatorRestlet extends BaseRestlet {
39
40    public final String version = "AnnotationManagerN4J/Annotator 0.5.1";
41
42    /*
43     * (non-Javadoc)
44     *
45     * @see org.restlet.Application#createInboundRoot()
46     */
47    @Override
48    public Restlet createInboundRoot() {
49
50        Restlet root = null;
51        Router router = new Router(getContext());
52       
53        router.attach("/annotations", AnnotatorAnnotations.class);
54        router.attach("/annotations/{id}", AnnotatorAnnotations.class);
55        router.attach("/search", AnnotatorSearch.class);
56        router.attach("/groups", AnnotatorGroups.class);
57        router.attach("/tags", AnnotatorTags.class);
58        router.attach("/tags/{id}", AnnotatorTags.class);
59        router.attach("/tags/{id}/annotations", AnnotatorAnnotationsByTags.class);
60        router.attach("/resources", AnnotatorResources.class);
61        router.attach("/resources/{id}", AnnotatorResources.class);
62        router.attach("/resources/{id}/annotations", AnnotatorAnnotationsByResources.class);
63        router.attach("/", AnnotatorInfo.class);
64        root = router;
65
66        // this.authenticator = createAuthenticator();
67        // authenticator.setNext(router);
68       
69        if (this.webappUriPrefix != null) {
70                // add prefix path to url
71                UrlPrefixFilter prefixFilter = new UrlPrefixFilter();
72                prefixFilter.setPrefix(this.webappUriPrefix);;
73                prefixFilter.setNext(root);
74                root = prefixFilter;
75        }
76
77        // handle Cross-Origin-Resource-Security headers
78        CorsFilter corsFilter = new CorsFilter(getContext(), router);
79        corsFilter.setAllowedOrigins(new HashSet<String>(Arrays.asList("*")));
80        corsFilter.setAllowedCredentials(true);
81        corsFilter.setNext(root);
82        root = corsFilter;
83
84        return root;
85
86    }
87
88    /* (non-Javadoc)
89     * @see de.mpiwg.itgroup.annotations.restlet.RestletImpl#getVersion()
90     */
91    @Override
92    public String getVersion() {
93        return version;
94    }
95
96}
Note: See TracBrowser for help on using the repository browser.