Task #3774
MNDeployment #3118: Dryad Member Node
return NotFound exceptions for /meta and /object calls using "near miss" identifiers
0%
Description
minor variations of known identifiers are returning content instead of NotFound exception.
There are 2 or 3 parts to it:
multiple consecutive slashes in the identifier are treated as one. So http:/dx.doi.org/foo and http://///dx.doi.org/////foo will return the same thing.
In some cases, the identifier uses http:/dx.doi.org, in other cases http://dx.doi.org. (http://datadryad.org/mn/v1/object/http:%2Fdx.doi.org%2F10.5061%2Fdryad.8665)the resource-map-indicator-suffix "?format=d1rem" will return a resource map, but so will "?format=d1remarkable" or "?format=d1remfooooooooooooo". The /object call returns a resource map with the "official" resource map identifier, but the /meta call uses the identifier from the api call as the identifier.
altering the "ver={date} suffix to the resource map indicator generates a unique variant of the resource map, incorporating that identifier into the RDF.
So for example, the identifiers:
http:/dx.doi.org/F10.5061/dryad.12?format=d1rem&ver=2011-08-02T16:00:05.530-0400foobar
http:/dx.doi.org/F10.5061/dryad.12?format=d1rem&ver=2011-08-02T16:00:05.530-0411
http:/dx.doi.org/F10.5061/dryad.12?format=d1rem&ver=2011-08-02T16:00:05.530-0412
http:/dx.doi.org/F10.5061/dryad.12?format=d1rem&beer=2011-08-02T16:00:05.530-0400
all return different resource maps (with different checksums and potentially sizes) that aggregate and document the same metadata and data objects related to the DOI. The differences reside in the URIs of the resource map and aggregation elements.
The main point is that it's also important for the rest endpoints to return NotFound when the identifier requested doesn't exactly equal a known identifier.
I'm not sure how that affects how you provision resource maps dynamically, but I assume that you keep track of resource map identifiers that are put into listObjects? maybe a check against that list before evaluating any regex's would do the trick.
Related issues
History
#1 Updated by Matthew Jones over 11 years ago
- Target version changed from Deploy by RSV to Deploy by end of Y4Q4
#2 Updated by Rob Nahf over 11 years ago
- Description updated (diff)
#3 Updated by Bruce Wilson over 11 years ago
- Target version changed from Deploy by end of Y4Q4 to Deploy by end of Y5Q2
#4 Updated by Ryan Scherle about 11 years ago
This problem stems from the way Dryad generates records on-the-fly for DataONE. We have plans to revamp this system in phase 2 of the DataONE implementation. Dryad is tracking this issue at https://trello.com/c/lYF9y6gk
#5 Updated by Laura Moyers almost 11 years ago
- Target version changed from Deploy by end of Y5Q2 to Deploy by end of Y5Q3
#6 Updated by Laura Moyers almost 11 years ago
- Target version changed from Deploy by end of Y5Q3 to Operational