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