Bertrand Delacretaz commented on SLING-8869:

I don't have much context about this so feel free to ignore this comment if 
it's not relevant...AFAIU the current patch disables caching of any tokens that 
might expire.

Isn't that a problem in terms of performance? You could maybe enhance the 
Executor with a checkExpired() method that getExecutor() can call to refresh 
the token only when needed. If it's a standard Java Executor that you're using 
you'd need an instanceof + cast to your expanded Executor to run the check, but 
that's a small price to pay vs not caching at all.

> SimpleHttpDistributionTransport does not refresh the secret for token based 
> implementations.
> --------------------------------------------------------------------------------------------
>                 Key: SLING-8869
>                 URL: https://issues.apache.org/jira/browse/SLING-8869
>             Project: Sling
>          Issue Type: Bug
>          Components: Content Distribution
>            Reporter: Mohit Arora
>            Priority: Critical
>             Fix For: Content Distribution Core 0.4.2
>         Attachments: SLING-8869.patch
> While saving the {{contextKeyExecutor}} in {{DistributionTransportContext}} 
> map, it is not expected that the secret associated with the executor could be 
> expired. This can happen in case of access token based implementations where 
> the token is expired after a certain period of time and has to be refreshed.
> The code to refresh the token is written in the secret provider but since the 
> executor is [cached in the map|#L208]] the secrets are not refreshed. It 
> works fine for credentials based secret provider but not for access token 
> based.
> cc - [~marett]

This message was sent by Atlassian Jira

Reply via email to