@Override public <T> T runAsTenant(final String tenant, final TenantRunner<T> callable) { final SecurityContext originalContext = SecurityContextHolder.getContext(); try { SecurityContextHolder.setContext(buildSecurityContext(tenant)); return callable.run(); } finally { SecurityContextHolder.setContext(originalContext); } }