in server/multitenancy/tenant_resolver.ts [37:70]
export function resolveTenant(
request: OpenSearchDashboardsRequest,
username: string,
availabeTenants: any,
config: SecurityPluginConfigType,
cookie: SecuritySessionCookie
): string | undefined {
let selectedTenant: string | undefined;
const query: any = request.url.query as any;
if (query && (query.security_tenant || query.securitytenant)) {
selectedTenant = query.security_tenant ? query.security_tenant : query.securitytenant;
} else if (request.headers.securitytenant || request.headers.security_tenant) {
selectedTenant = request.headers.securitytenant
? (request.headers.securitytenant as string)
: (request.headers.security_tenant as string);
} else if (isValidTenant(cookie.tenant)) {
selectedTenant = cookie.tenant;
} else {
selectedTenant = undefined;
}
const preferredTenants = config.multitenancy?.tenants.preferred;
const globalTenantEnabled = config.multitenancy?.tenants.enable_global || false;
const privateTenantEnabled = config.multitenancy?.tenants.enable_private || false;
return resolve(
username,
selectedTenant,
preferredTenants,
availabeTenants,
globalTenantEnabled,
privateTenantEnabled
);
}