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 <[email protected]>
Authored: Thu Apr 13 09:51:29 2017 -0500
Committer: Ramesh Reddy <[email protected]>
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

Reply via email to