Skip to content

feat: add note to TokenRevokeRequest and TokenRevokeResponse about 20-token-per-call limit#169

Open
fabiohidekihirose wants to merge 2 commits into
masterfrom
feat/add-revoke-cap-note
Open

feat: add note to TokenRevokeRequest and TokenRevokeResponse about 20-token-per-call limit#169
fabiohidekihirose wants to merge 2 commits into
masterfrom
feat/add-revoke-cap-note

Conversation

@fabiohidekihirose

@fabiohidekihirose fabiohidekihirose commented Jun 19, 2026

Copy link
Copy Markdown

Clickup ticket: https://app.clickup.com/t/9002222883/ENG-5662

Problem

There is an undocumented limitation on the /api/auth/token/revoke API call that silently restricts bulk revocation to 20 tokens per request (controlled by the token.revoke.count.max parameter). Customers wrongly believe that all tokens will be revoked with just one call; however, this is not the case, and they need to make multiple calls until the count drops to zero. This was discovered by a customer (Unisys-Resonatex) through an unpleasant experience during a security event that required the revocation of 350,000 tokens.
We also never told customers the safe way to do bulk revocation. Just looping the API without preparation can go wrong in multiple ways.

Java SDK (authlete-java-common)

  • Add a note to TokenRevokeRequest class explaining the 20-per-call cap and that you need to loop
  • Add a note to TokenRevokeResponse#count field saying loop until this hits zero

Content source: https://git.authlete.com/support-tools/agent-knowledge/-/merge_requests/39/diffs#a4afaf7dfe99f2e5f00d1d1aa5ff099f07325867

* target has more than 20 tokens, the response `count` will be 20 and the remainder
* is left untouched. To fully wipe them, call the endpoint repeatedly until `count` returns 0.
*/
private int count;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This note should also be added to the public getter/setter Javadocs, not only the private field.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

* </ol>
*
* <p>
* Bulk revocation with `clientIdentifier` only, `clientIdentifier` + `subject`,

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@fabiohidekihirose This Javadoc uses Markdown syntax like backticks and bold, but Javadoc won’t render that correctly. Can we use Javadoc tags instead, e.g. {@code clientIdentifier} and tag instead of 20 tokens per request, to keep it consistent with the rest of the file?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants