Support refresh of limited use tokens (num_use > 0) #360
+148
−71
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #338
While enhancing the test for caching tokens I realized supporting limited use tokens should be fairly straightforward.
@vsevel What do you think? The only tricky thing is that we copy token values (e.g., for caching) so I used an
AtomicReference
as a shared reference count. Other than that, I addedgetClientTokenForUsage
to decrement the count when it's being used for authorization and overloaded the expiration tests to take into account it's max # of uses.I added a test to the caching token provider tests suite that tests limited use tokens and it seems to perform as expected.
It does not attempt to
extend
limited use tokens that are over their use limit because from my investigation it doesn't seem that's allowed.@alexjaravete Can you build this this locally and see if this "just works" for you?