@Override public QName getName(QName name) { String tenantDomain = getCurrentUserDomain(); if (!tenantDomain.equals(DEFAULT_DOMAIN)) { checkTenantEnabled(tenantDomain); name = getName(name, tenantDomain); } return name; }
@Override public String getBaseName(String name) { // get base name, but don't force for non-tenant user (e.g. super admin) return getBaseName(name, false); }
@Override public String getBaseNameUser(String username) { return tenantService.getBaseNameUser(username); }
@Override public String getUserDomain(String username) { // can be null (e.g. for System user / during app ctx init) if ((username != null) && AuthenticationUtil.isMtEnabled()) { int idx = username.lastIndexOf(SEPARATOR); if ((idx > 0) && (idx < (username.length() - 1))) { String tenantDomain = getTenantDomain(username.substring(idx + 1)); checkTenantEnabled(tenantDomain); return tenantDomain; } } return DEFAULT_DOMAIN; // default domain - non-tenant user }
private void bootstrapVersionTenantStore(ImporterBootstrap versionImporterBootstrap, String tenantDomain) { // Bootstrap Tenant-Specific Version Store StoreRef bootstrapStoreRef = versionImporterBootstrap.getStoreRef(); bootstrapStoreRef = new StoreRef(bootstrapStoreRef.getProtocol(), tenantService.getName(bootstrapStoreRef.getIdentifier(), tenantDomain)); versionImporterBootstrap.setStoreUrl(bootstrapStoreRef.toString()); versionImporterBootstrap.bootstrap(); if (logger.isDebugEnabled()) { logger.debug("Bootstrapped store: "+tenantService.getBaseName(bootstrapStoreRef)+" (Tenant: "+tenantDomain+")"); } }
protected String getName(String name, String tenantDomain) { return getName(name, tenantDomain, true); }
@Override public String getCurrentUserDomain() { return tenantService.getCurrentUserDomain(); }
@Override public QName getName(NodeRef inNodeRef, QName name) { ParameterCheck.mandatory("InNodeRef", inNodeRef); int idx = inNodeRef.getStoreRef().getIdentifier().lastIndexOf(SEPARATOR); if (idx != -1) { String tenantDomain = inNodeRef.getStoreRef().getIdentifier().substring(1, idx); checkTenantEnabled(tenantDomain); return getName(name, tenantDomain); } return name; }
@Override public String getDomain(String name, boolean checkCurrentDomain) { ParameterCheck.mandatory("name", name); String nameDomain = DEFAULT_DOMAIN; int idx1 = name.indexOf(SEPARATOR); if (idx1 == 0) { int idx2 = name.indexOf(SEPARATOR, 1); nameDomain = getTenantDomain(name.substring(1, idx2)); if (checkCurrentDomain) { String tenantDomain = getCurrentUserDomain(); if ((!tenantDomain.equals(DEFAULT_DOMAIN)) && (!tenantDomain.equals(nameDomain))) { throw new AlfrescoRuntimeException("domain mismatch: expected = " + tenantDomain + ", actual = " + nameDomain); } } } return nameDomain; }
if ((idx > 0) && (idx < (username.length() - 1))) String tenantDomain = getTenantDomain(username.substring(idx + 1)); if (getTenant(tenantDomain) != null)
@Override public String getDomainUser(String baseUsername, String tenantDomain) { tenantDomain = getTenantDomain(tenantDomain); return tenantService.getDomainUser(baseUsername, tenantDomain); }
@Override public String getDomain(String name) { return getDomain(name, false); }
protected void checkTenantEnabled(String tenantDomain) { Tenant tenant = getTenant(tenantDomain); // note: System user can access disabled tenants if (tenant == null || !AuthenticationUtil.isRunAsUserTheSystemUser() && !tenant.isEnabled()) { throw new TenantDisabledException(tenantDomain); } }
protected String getName(String name, String tenantDomain, boolean checkTenantEnabled) { ParameterCheck.mandatory("tenantDomain", tenantDomain); if (name == null) { return null; } if (checkTenantEnabled) { checkTenantEnabled(tenantDomain); } int idx1 = name.indexOf(SEPARATOR); if (idx1 != 0) { // no domain, so add it as a prefix (between two domain separators) name = SEPARATOR + tenantDomain + SEPARATOR + name; } else { int idx2 = name.indexOf(SEPARATOR, 1); String nameDomain = name.substring(1, idx2); if (!tenantDomain.equalsIgnoreCase(nameDomain)) { throw new AlfrescoRuntimeException("domain mismatch: expected = " + tenantDomain + ", actual = " + nameDomain); } } return name; }
TenantService tenantService = new MultiTServiceImpl(); this.dictionaryDAO = new DictionaryDAOImpl(); dictionaryDAO.setTenantService(tenantService);
assertEquals("fred", multiTServiceImpl.getMultiTenantDomainName("@fred@bloggs"));
private void bootstrapVersionTenantStore(ImporterBootstrap versionImporterBootstrap, String tenantDomain) { // Bootstrap Tenant-Specific Version Store StoreRef bootstrapStoreRef = versionImporterBootstrap.getStoreRef(); bootstrapStoreRef = new StoreRef(bootstrapStoreRef.getProtocol(), tenantService.getName(bootstrapStoreRef.getIdentifier(), tenantDomain)); versionImporterBootstrap.setStoreUrl(bootstrapStoreRef.toString()); versionImporterBootstrap.bootstrap(); if (logger.isDebugEnabled()) { logger.debug("Bootstrapped store: "+tenantService.getBaseName(bootstrapStoreRef)+" (Tenant: "+tenantDomain+")"); } }
protected String getName(String name, String tenantDomain) { return getName(name, tenantDomain, true); }
@Override public String getCurrentUserDomain() { return tenantService.getCurrentUserDomain(); }
@Override public QName getName(NodeRef inNodeRef, QName name) { ParameterCheck.mandatory("InNodeRef", inNodeRef); int idx = inNodeRef.getStoreRef().getIdentifier().lastIndexOf(SEPARATOR); if (idx != -1) { String tenantDomain = inNodeRef.getStoreRef().getIdentifier().substring(1, idx); checkTenantEnabled(tenantDomain); return getName(name, tenantDomain); } return name; }