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

Jonathan Sinovassin-Naïk reassigned UNOMI-980:
----------------------------------------------

    Assignee: Jonathan Sinovassin-Naïk

>   Single-tenant compatibility mode refuses every request until its tenant is 
> created by hand                                                               
>                                                 
> -----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: UNOMI-980
>                 URL: https://issues.apache.org/jira/browse/UNOMI-980
>             Project: Apache Unomi
>          Issue Type: Bug
>            Reporter: Jonathan Sinovassin-Naïk
>            Assignee: Jonathan Sinovassin-Naïk
>            Priority: Major
>
> h1. Description
>   
> The compatibility mode lets a client written before Unomi 3.1 keep working 
> with no change on its
>   side. It currently refuses every request until an operator creates a 
> tenant, which is a step no
>   earlier version asked for:
>      
> {code:java}
> ERROR AuthenticationFilter - V2 compatibility mode: configured default tenant 
> 'default' does not exist
> {code}
>      
>   Three changes:
>      
>   1. Create the tenant the mode runs on. A new 
> TenantService.getOrCreateTenant is synchronized, and it
>      re-reads the tenant when a concurrent creation wins the race. Several 
> nodes starting together all
>      get the tenant, and only one creation happens.
>   2. Drop the tenant identifier setting. The mode reads the setting in two 
> places, and both sit inside
>    the method that runs only when the mode is on. A client from before 3.1 
> knows no tenant, so it
>    never names one, and nothing outside the filter reads the value. The 
> identifier becomes a
>    constant.
>    Two unreachable branches go with the setting. Each call site tested the 
> value for blankness, while
>    modified() already fell back to "default". The two branches also 
> disagreed: a blank value denied
>    every public request on one path, and switched to the system context on 
> the other.
>   3. Rename the mode from V2 compatibility to single-tenant compatibility. 
> Unomi 3.0.0 and 3.0.1 carry
>    no tenant either, so a 3.0.1 client meets the same wall as a V2 client. 
> The old name named the
>    wrong thing. The setting becomes singletenantcompatibility.enabled.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to