Carsten Ziegeler created SLING-3444:
---------------------------------------

             Summary: Provide a switch to enable feature flags for the resource 
resolver
                 Key: SLING-3444
                 URL: https://issues.apache.org/jira/browse/SLING-3444
             Project: Sling
          Issue Type: Improvement
          Components: Feature Flags, ResourceResolver
            Reporter: Carsten Ziegeler
            Assignee: Carsten Ziegeler
             Fix For: Feature Flags 1.0.0, Resource Resolver 1.1.0


When sending a post request which e.g. sets the feature flag property on a 
resource, this results in an exception in the post servlet. (unsetting is not 
possible either).
The reason is, that the post servlet gets the resource several times and once 
the feature flag is set, it's not visible to the resource resolver anymore.

This is a proposal on how to fix this:
    FeatureFlag support for hiding resources is an implementation (detail) 
feature of the ResourceResolver(Impl).
    FeatureFlag support for hiding resources is in general needed for GET (and 
HEAD) requests only (see the button hiding use case, etc).

This is the proposed

    Feature Flag Support is disabled by default in the ResourceResolverImpl.
    Feature Flag Support can be enabled in the ResourceResolverImpl by setting 
a new "sling.resourceresolver.feature" (or so) property in the 
authenticationInfo map given to the get*ResourceResolver method.
    The Feature bundle implements an AuthenticationInfoPostProcessor which 
checks the request method (and optionally a request parameter) to decide 
whether to set or not the "sling.resourceresolver.feature" property in the 
AuthenticationInfo. By default this AuthenticationInfoPostProcessor sets the 
flag only for GET and HEAD requests.

This would enable feature flag support for GET/HEAD requests while still 
alowing content updates with POST (and other non-idempotent) requests. As a 
consequence, though, background processing requesting ResourceResolver 
instances from the ResourceResolverFactory directly will by default get 
ResourceResolver instances with feature flag support disabled.




--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to