[
https://issues.apache.org/jira/browse/SLING-2320?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jeff Young updated SLING-2320:
------------------------------
Attachment: json_get_servlet_rewrite.patch
No worries, Justin. I've got one more anyway ;)
Hopefully this is the final installment.
Rewrite of JSON GET servlet to:
a) not throw two exceptions per node finding the parent (in fact, we don't look
for the parent at all anymore as the JSON rendering is now done via a
second-pass, depth-first traversal rather than during the breadth-first
depthCheck)
b) not serialize/de-serialize/re-serialize the JSON (also due to the above
two-pass approach)
c) use ArrayLists instead of LinkedLists for breadth-first traversal (to reduce
memory allocation calls)
d) not use exceptions for limiting depth
> Current DOS-prevention for infinity.json can prevent enumeration of children
> ----------------------------------------------------------------------------
>
> Key: SLING-2320
> URL: https://issues.apache.org/jira/browse/SLING-2320
> Project: Sling
> Issue Type: Bug
> Components: Servlets
> Affects Versions: Servlets Get 2.1.0
> Reporter: Jeff Young
> Assignee: Justin Edelson
> Labels: newbie, patch
> Fix For: Servlets Get 2.1.4
>
> Attachments: jsonRenderer.diff, json_get_servlet_rewrite.patch,
> servlet_tests.patch
>
> Original Estimate: 1h
> Remaining Estimate: 1h
>
> A request of resource.1.json should always succeed, as it's the primary
> method for JSON introspection of the repository hierarchy. DOS protection
> should only apply to "deep" traversals; that is, anything with a depth
> greater than 1 (and, in particular, resource.infinity.json).
> For a fuller discussion, see:
> http://www.mail-archive.com/[email protected]/msg13961.html.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira