@Override protected String getUserID(Credentials credentials) { if (!(credentials instanceof SimpleCredentials)) { return super.getUserID(credentials); } SimpleCredentials cred = (SimpleCredentials) credentials; String id = cred.getUserID(); if (id == null) { return super.getUserID(credentials); } String key = id + String.valueOf(cred.getPassword()); String userId = ids.get(key); if (userId != null) { return userId; } boolean realId = false; Object realIdAttr = cred.getAttribute(JackrabbitConstants.REAL_USER_ID_USED); if (realIdAttr instanceof String) { realId = Boolean.valueOf((String) realIdAttr); } if (!realId) { try { LoginTable loginTable = LoginDBHandler.getUserLoginByUserName(id); userId = loginTable == null ? null : String.valueOf(loginTable.getUserId()); } catch (Exception e) { e.printStackTrace(); } } if (userId == null) { userId = super.getUserID(credentials); } if (userId != null) { ids.put(key, userId); } return userId; }