[ 
https://issues.apache.org/jira/browse/KNOX-2670?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sandor Molnar resolved KNOX-2670.
---------------------------------
    Fix Version/s: 1.6.0
       Resolution: Fixed

> AliasBasedTokenStateService does not throw UnknownTokenException at 
> revocation time
> -----------------------------------------------------------------------------------
>
>                 Key: KNOX-2670
>                 URL: https://issues.apache.org/jira/browse/KNOX-2670
>             Project: Apache Knox
>          Issue Type: Bug
>    Affects Versions: 1.6.0
>            Reporter: Sandor Molnar
>            Assignee: Sandor Molnar
>            Priority: Major
>             Fix For: 1.6.0
>
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> *Steps to reproduce*
>  # Configure Knox to use the AliasBasedTokenStateService implemntation
>  # Generated token with 1 min lifespan on the token generation UI
>  # Revoke the token on the token management page
>  # Use knox token api to revoke again the already revoked token
> The result is:
> {noformat}
> { "revoked": "true" }{noformat}
>  
> *Root cause analysis*
> {{AliasBasedTokenStateService.removeToken(String tokenId)}} claims it throws 
> {{UnknownTokenException}} but this is not true since it's missing the 
> {{validateToken(String)}} call. In fact, we would not even need that method: 
> if we remove it then {{DefaultTokenStateService.removeToken(String)}} will be 
> invoked that has the required check.
> The good news is that the token is not maintained in the memory or in the 
> underlying keystore because 
> {{AliasBasedTokenStateService.removeToken(Set<String> tokenIds)}} silently 
> tries to remove the token from the keystore and from memory but those 
> implementations are tolerant to invoke a delete with a non-existing alias.
> That means, the token was removed perfectly for the first time.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to