in src/main/java/org/apache/sling/tenant/internal/TenantAdapterFactory.java [114:135]
private <AdapterType> AdapterType getAdapter(Session session,
Class<AdapterType> type) {
if ( session instanceof JackrabbitSession) {
String userID = session.getUserID();
JackrabbitSession jrSession = (JackrabbitSession) session;
try {
Authorizable authorizable = jrSession.getUserManager()
.getAuthorizable(userID);
if (authorizable != null) {
String userHome = authorizable.getPath();
// tries to get tenant information from user home
// i.e. /home/users/tenant1/a/admin
return getAdapter(userHome, type);
}
} catch (Exception e) {
log.error("can not get user from session", e);
}
}
log.debug("Unable to adapt to resource of type {}", type.getName());
return null;
}