18
|
1 package de.mpiwg.itgroup.annotations.restlet;
|
|
2
|
70
|
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
|
91
|
25 import java.util.Arrays;
|
|
26 import java.util.HashSet;
|
|
27
|
18
|
28 import org.restlet.Restlet;
|
91
|
29 import org.restlet.engine.application.CorsFilter;
|
18
|
30 import org.restlet.routing.Router;
|
|
31
|
94
|
32 import de.mpiwg.itgroup.annotations.restlet.utils.UrlPrefixFilter;
|
|
33
|
18
|
34 /**
|
|
35 * @author casties
|
|
36 *
|
|
37 */
|
|
38 public class AnnotatorRestlet extends BaseRestlet {
|
|
39
|
91
|
40 public final String version = "AnnotationManagerN4J/Annotator 0.5.1";
|
18
|
41
|
|
42 /*
|
|
43 * (non-Javadoc)
|
|
44 *
|
|
45 * @see org.restlet.Application#createInboundRoot()
|
|
46 */
|
|
47 @Override
|
|
48 public Restlet createInboundRoot() {
|
|
49
|
94
|
50 Restlet root = null;
|
18
|
51 Router router = new Router(getContext());
|
91
|
52
|
18
|
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);
|
28
|
57 router.attach("/tags", AnnotatorTags.class);
|
|
58 router.attach("/tags/{id}", AnnotatorTags.class);
|
|
59 router.attach("/tags/{id}/annotations", AnnotatorAnnotationsByTags.class);
|
44
|
60 router.attach("/resources", AnnotatorResources.class);
|
|
61 router.attach("/resources/{id}", AnnotatorResources.class);
|
|
62 router.attach("/resources/{id}/annotations", AnnotatorAnnotationsByResources.class);
|
18
|
63 router.attach("/", AnnotatorInfo.class);
|
94
|
64 root = router;
|
91
|
65
|
|
66 // this.authenticator = createAuthenticator();
|
18
|
67 // authenticator.setNext(router);
|
94
|
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 }
|
18
|
76
|
91
|
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);
|
94
|
81 corsFilter.setNext(root);
|
|
82 root = corsFilter;
|
|
83
|
|
84 return root;
|
91
|
85
|
18
|
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 }
|