You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@knox.apache.org by "ASF GitHub Bot (Jira)" <ji...@apache.org> on 2024/02/01 00:35:00 UTC

[jira] [Work logged] (KNOX-2990) TokenStateService implementation cleanup

     [ https://issues.apache.org/jira/browse/KNOX-2990?focusedWorklogId=902928&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-902928 ]

ASF GitHub Bot logged work on KNOX-2990:
----------------------------------------

                Author: ASF GitHub Bot
            Created on: 01/Feb/24 00:34
            Start Date: 01/Feb/24 00:34
    Worklog Time Spent: 10m 
      Work Description: moresandeep commented on code in PR #826:
URL: https://github.com/apache/knox/pull/826#discussion_r1473653395


##########
gateway-server/src/main/java/org/apache/knox/gateway/services/factory/TokenStateServiceFactory.java:
##########
@@ -61,17 +62,32 @@ protected Service createService(GatewayServices gatewayServices, ServiceType ser
           service.init(gatewayConfig, options);
         } catch (ServiceLifecycleException e) {
           LOG.errorInitializingService(implementation, e.getMessage(), e);
-          service = new AliasBasedTokenStateService();
-          ((AliasBasedTokenStateService) service).setAliasService(getAliasService(gatewayServices));
+          service = useDerbyDatabaseTokenStateService(gatewayServices, gatewayConfig, options);
         }
+      } else if (matchesImplementation(implementation, DerbyDBTokenStateService.class, true)) {

Review Comment:
   @pzampino good point, service loader.





Issue Time Tracking
-------------------

    Worklog Id:     (was: 902928)
    Time Spent: 1h 40m  (was: 1.5h)

> 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: 1h 40m
>  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)