aboutsummaryrefslogtreecommitdiff
path: root/src/org/traccar/api/CorsResponseFilter.java
diff options
context:
space:
mode:
authorAnton Tananaev <anton.tananaev@gmail.com>2015-12-01 10:50:18 +1300
committerAnton Tananaev <anton.tananaev@gmail.com>2015-12-01 10:50:18 +1300
commit2ba060bc29ee529c5492b098b21927e15d815cb1 (patch)
tree0d2dcd24dc19d3f8cbece0440cf298c70225e2f7 /src/org/traccar/api/CorsResponseFilter.java
parent416ea87605b13f329430fbbb6a4aa1c002086514 (diff)
downloadtrackermap-server-2ba060bc29ee529c5492b098b21927e15d815cb1.tar.gz
trackermap-server-2ba060bc29ee529c5492b098b21927e15d815cb1.tar.bz2
trackermap-server-2ba060bc29ee529c5492b098b21927e15d815cb1.zip
Rename file as well
Diffstat (limited to 'src/org/traccar/api/CorsResponseFilter.java')
-rw-r--r--src/org/traccar/api/CorsResponseFilter.java53
1 files changed, 53 insertions, 0 deletions
diff --git a/src/org/traccar/api/CorsResponseFilter.java b/src/org/traccar/api/CorsResponseFilter.java
new file mode 100644
index 000000000..8aab5ad68
--- /dev/null
+++ b/src/org/traccar/api/CorsResponseFilter.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright 2015 Anton Tananaev (anton.tananaev@gmail.com)
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.traccar.api;
+
+import java.io.IOException;
+import javax.ws.rs.container.ContainerRequestContext;
+import javax.ws.rs.container.ContainerResponseContext;
+import javax.ws.rs.container.ContainerResponseFilter;
+
+public class CorsResponseFilter implements ContainerResponseFilter {
+
+ public static final String ACCESS_CONTROL_ALLOW_ORIGIN_KEY = "Access-Control-Allow-Origin";
+ public static final String ACCESS_CONTROL_ALLOW_ORIGIN_VALUE = "*";
+
+ public static final String ACCESS_CONTROL_ALLOW_HEADERS_KEY = "Access-Control-Allow-Headers";
+ public static final String ACCESS_CONTROL_ALLOW_HEADERS_VALUE = "origin, content-type, accept, authorization";
+
+ public static final String ACCESS_CONTROL_ALLOW_CREDENTIALS_KEY = "Access-Control-Allow-Credentials";
+ public static final String ACCESS_CONTROL_ALLOW_CREDENTIALS_VALUE = "true";
+
+ public static final String ACCESS_CONTROL_ALLOW_METHODS_KEY = "Access-Control-Allow-Methods";
+ public static final String ACCESS_CONTROL_ALLOW_METHODS_VALUE = "GET, POST, PUT, DELETE";
+
+ @Override
+ public void filter(ContainerRequestContext request, ContainerResponseContext response) throws IOException {
+ if (!response.getHeaders().containsKey(ACCESS_CONTROL_ALLOW_ORIGIN_KEY)) {
+ response.getHeaders().add(ACCESS_CONTROL_ALLOW_ORIGIN_KEY, ACCESS_CONTROL_ALLOW_ORIGIN_VALUE);
+ }
+ if (!response.getHeaders().containsKey(ACCESS_CONTROL_ALLOW_HEADERS_KEY)) {
+ response.getHeaders().add(ACCESS_CONTROL_ALLOW_HEADERS_KEY, ACCESS_CONTROL_ALLOW_HEADERS_VALUE);
+ }
+ if (!response.getHeaders().containsKey(ACCESS_CONTROL_ALLOW_CREDENTIALS_KEY)) {
+ response.getHeaders().add(ACCESS_CONTROL_ALLOW_CREDENTIALS_KEY, ACCESS_CONTROL_ALLOW_CREDENTIALS_VALUE);
+ }
+ if (!response.getHeaders().containsKey(ACCESS_CONTROL_ALLOW_METHODS_KEY)) {
+ response.getHeaders().add(ACCESS_CONTROL_ALLOW_METHODS_KEY, ACCESS_CONTROL_ALLOW_METHODS_VALUE);
+ }
+ }
+
+}