[ https://issues.apache.org/jira/browse/KNOX-2990?focusedWorklogId=902968&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-902968 ]
ASF GitHub Bot logged work on KNOX-2990: ---------------------------------------- Author: ASF GitHub Bot Created on: 01/Feb/24 07:55 Start Date: 01/Feb/24 07:55 Worklog Time Spent: 10m Work Description: smolnar82 commented on code in PR #826: URL: https://github.com/apache/knox/pull/826#discussion_r1473947362 ########## gateway-server/src/main/java/org/apache/knox/gateway/services/token/impl/DefaultTokenStateService.java: ########## @@ -457,4 +457,9 @@ private Collection<KnoxToken> fetchTokens(String userName, boolean createdBy) { }); return tokens; } + + @Override + public boolean isMigrationTarget() { Review Comment: Since the `DefaultTokenStateService` implements that method already, there is no need to implement it everywhere. The only override of this method is needed when you want to make that implementation a migration target. That's what I did in `JDBCTokenStateService`. From this point of view, making that class implement an interface or override this method, doesn't make any difference, therefore I don't mind changing to the interface approach. Issue Time Tracking ------------------- Worklog Id: (was: 902968) Time Spent: 2h 20m (was: 2h 10m) > TokenStateService implementation cleanup > ---------------------------------------- > > Key: KNOX-2990 > URL: https://issues.apache.org/jira/browse/KNOX-2990 > Project: Apache Knox > Issue Type: Task > Components: Server > Affects Versions: 2.0.0, 1.6.0, 1.6.1 > Reporter: Sandor Molnar > Assignee: Sandor Molnar > Priority: Critical > Fix For: 2.1.0 > > Time Spent: 2h 20m > Remaining Estimate: 0h > > This issue is driven by a [DISCUSS] thread initiated on Knox's DEV mailing > list [here|https://lists.apache.org/thread/fs9nkl6l45o330ttvgvqxj3jnxt63bcs]. > As a result of that discussion, the following needs to be implemented: > * deprecate the following TSS implementations: > ** AliasBasedTokenStateService > ** ZookeeperTokenStateService > ** JournalBasedTokenStateService > * document the deprecation of these TSS implementations in v2.1.0 and > highlight that they will be removed in the upcoming release (v2.2.0?). > * implement a DerbyDB storage that will store tokens in > {{$DATA_DIR/security/tokens}} (encrypted or not, it'll be decided later) > * make sure appropriate file permissions are set on that folder > * have the {{homepage}} topology configured with JDBC TSS pointing to this > DerbyDB storage > * implement a new KnoxCLI command that migrates existing tokens from > credential stores to the DerbyDB storage > * automate this new KnoxCLI command in a way such that it runs when Knox > Gateway is started, token management is enabled, and DerbyDB storage is > configured > * ensure that the previous automated step can be controlled (E.g. in case of > unforeseen errors it can be turned off) > * document possible data replication scenarios when, in the case of HA > deployments, existing tokens from one Knox node should be made available in > other Knox node(s) and there is no other centralized RDBMS in use > (PostgreSQL, MySQL for instance) > -- This message was sent by Atlassian Jira (v8.20.10#820010)