details:   https://code.openbravo.com/erp/devel/pi/rev/e2e7fb70d085
changeset: 30510:e2e7fb70d085
user:      Martin Taal <martin.taal <at> openbravo.com>
date:      Sun Oct 23 16:10:33 2016 +0200
summary:   Fixes issue 34267: Let the basekernelservlet handle cors requests
Set cors headers in the basekernelservlet

diffstat:

 
modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/BaseKernelServlet.java
 |   6 ++-
 
modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/KernelUtils.java
       |  24 +++++++++-
 2 files changed, 28 insertions(+), 2 deletions(-)

diffs (75 lines):

diff -r b61ce156e6a0 -r e2e7fb70d085 
modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/BaseKernelServlet.java
--- 
a/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/BaseKernelServlet.java
        Sun Oct 23 11:00:57 2016 +0200
+++ 
b/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/BaseKernelServlet.java
        Sun Oct 23 16:10:33 2016 +0200
@@ -11,7 +11,7 @@
  * under the License. 
  * The Original Code is Openbravo ERP. 
  * The Initial Developer of the Original Code is Openbravo SLU 
- * All portions are Copyright (C) 2009-2014 Openbravo SLU 
+ * All portions are Copyright (C) 2009-2016 Openbravo SLU 
  * All Rights Reserved. 
  * Contributor(s):  ______________________________________.
  ************************************************************************
@@ -50,6 +50,10 @@
 
   public void service(final HttpServletRequest request, HttpServletResponse 
response)
       throws ServletException, IOException {
+
+    // always set the cors headers
+    KernelUtils.getInstance().setCORSHeaders(request, response);
+
     // encapsulate the response to catch any redirects
     // redirects are done by the authentication manager
     final KernelHttpServletResponse localResponse = new 
KernelHttpServletResponse(response);
diff -r b61ce156e6a0 -r e2e7fb70d085 
modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/KernelUtils.java
--- 
a/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/KernelUtils.java
      Sun Oct 23 11:00:57 2016 +0200
+++ 
b/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/KernelUtils.java
      Sun Oct 23 16:10:33 2016 +0200
@@ -11,18 +11,21 @@
  * under the License. 
  * The Original Code is Openbravo ERP. 
  * The Initial Developer of the Original Code is Openbravo SLU 
- * All portions are Copyright (C) 2010-2015 Openbravo SLU 
+ * All portions are Copyright (C) 2010-2016 Openbravo SLU 
  * All Rights Reserved. 
  * Contributor(s):  ______________________________________.
  ************************************************************************
  */
 package org.openbravo.client.kernel;
 
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 
 import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 
 import org.apache.commons.lang.StringEscapeUtils;
 import org.apache.log4j.Logger;
@@ -509,6 +512,25 @@
   }
 
   /**
+   * See https://en.wikipedia.org/wiki/Cross-origin_resource_sharing
+   */
+  public void setCORSHeaders(HttpServletRequest request, HttpServletResponse 
response)
+      throws ServletException, IOException {
+
+    String origin = request.getHeader("Origin");
+
+    if (origin != null && !origin.equals("")) {
+      response.setHeader("Access-Control-Allow-Origin", origin);
+      response.setHeader("Access-Control-Allow-Credentials", "true");
+      response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS");
+      response.setHeader("Access-Control-Allow-Headers",
+          "Content-Type, Origin, Accept, X-Requested-With, 
Access-Control-Allow-Credentials");
+
+      response.setHeader("Access-Control-Max-Age", "10000");
+    }
+  }
+
+  /**
    * Returns true if any of the identifier properties of the provided entity 
is nullable
    * 
    * @param entity

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most 
engaging tech sites, SlashDot.org! http://sdm.link/slashdot
_______________________________________________
Openbravo-commits mailing list
Openbravo-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to