You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@olingo.apache.org by ra...@apache.org on 2017/04/13 14:51:46 UTC

olingo-odata4 git commit: OLINGO-1008: allowing cross-site fetching of reference metadata during fetch/resolution of

Repository: olingo-odata4
Updated Branches:
  refs/heads/master 3a8cbcc33 -> d80bbd7af


OLINGO-1008: allowing cross-site fetching of reference metadata during fetch/resolution of


Project: http://git-wip-us.apache.org/repos/asf/olingo-odata4/repo
Commit: http://git-wip-us.apache.org/repos/asf/olingo-odata4/commit/d80bbd7a
Tree: http://git-wip-us.apache.org/repos/asf/olingo-odata4/tree/d80bbd7a
Diff: http://git-wip-us.apache.org/repos/asf/olingo-odata4/diff/d80bbd7a

Branch: refs/heads/master
Commit: d80bbd7afd16dc039926784caa3bc6c9df3cfd6e
Parents: 3a8cbcc
Author: Ramesh Reddy <ra...@jboss.org>
Authored: Thu Apr 13 09:51:29 2017 -0500
Committer: Ramesh Reddy <ra...@jboss.org>
Committed: Thu Apr 13 09:51:29 2017 -0500

----------------------------------------------------------------------
 .../retrieve/XMLMetadataRequestImpl.java        | 26 +++-----------------
 1 file changed, 4 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/olingo-odata4/blob/d80bbd7a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/XMLMetadataRequestImpl.java
----------------------------------------------------------------------
diff --git a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/XMLMetadataRequestImpl.java b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/XMLMetadataRequestImpl.java
index af9dbf2..22d46ad 100644
--- a/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/XMLMetadataRequestImpl.java
+++ b/lib/client-core/src/main/java/org/apache/olingo/client/core/communication/request/retrieve/XMLMetadataRequestImpl.java
@@ -47,7 +47,7 @@ public class XMLMetadataRequestImpl
 
   @Override
   public ODataRetrieveResponse<XMLMetadata> execute() {
-    SingleXMLMetadatRequestImpl rootReq = new SingleXMLMetadatRequestImpl(odataClient, uri, null);
+    SingleXMLMetadatRequestImpl rootReq = new SingleXMLMetadatRequestImpl(odataClient, uri);
     if (getPrefer() != null) {
       rootReq.setPrefer(getPrefer());
     }
@@ -74,8 +74,7 @@ public class XMLMetadataRequestImpl
     for (Reference reference : rootRes.getBody().getReferences()) {
       final SingleXMLMetadatRequestImpl includeReq = new SingleXMLMetadatRequestImpl(
           odataClient,
-          odataClient.newURIBuilder(uri.resolve(reference.getUri()).toASCIIString()).build(),
-          uri);
+          odataClient.newURIBuilder(uri.resolve(reference.getUri()).toASCIIString()).build());
       final XMLMetadata includeMetadata = includeReq.execute().getBody();
 
       // edmx:Include
@@ -132,36 +131,19 @@ public class XMLMetadataRequestImpl
 
   private class SingleXMLMetadatRequestImpl extends AbstractMetadataRequestImpl<XMLMetadata> {
 
-    private final URI parentURI;
     private HttpResponse httpResponse;
 
-    public SingleXMLMetadatRequestImpl(final ODataClient odataClient, final URI uri, final URI parent) {
+    public SingleXMLMetadatRequestImpl(final ODataClient odataClient, final URI uri) {
       super(odataClient, uri);
-      parentURI = parent;
     }
 
     public HttpResponse getHttpResponse() {
       return httpResponse;
     }
 
-    /**
-     * Referenced document's URIs must only have the same scheme, host, and port as the
-     * main metadata document's URI but don't have to start with the service root
-     * as all other OData request URIs.
-     */
     @Override
     protected void checkRequest(final ODataClient odataClient, final HttpUriRequest request) {
-      if (parentURI == null) {
-        super.checkRequest(odataClient, request);
-      } else {
-        if (!parentURI.getScheme().equals(uri.getScheme())
-            || !parentURI.getAuthority().equals(uri.getAuthority())) {
-          throw new IllegalArgumentException(
-              String.format("The referenced EDMX document has the URI '%s'"
-                  + " where scheme, host, or port is different from the main metadata document URI '%s'.",
-                  uri.toASCIIString(), parentURI.toASCIIString()));
-        }
-      }
+      // override the parent check, as the reference urls in metadata can be spanning cross-site
     }
 
     @Override