Занимаюсь настройкой репозитория дуба. Все работает нормально, когда я использую администратора по умолчанию, но когда я пытаюсь использовать UserManager для настройки новых учетных записей, я либо получаю исключение сбоя входа в систему, либо использую альтернативную настройку репозитория, я могу создать пользователя, но когда я вхожу в систему используя этого пользователя, session.getUserID
возвращает null.
Метод 1 дает исключение loginException:
Map<String, Object> userParams = getSecurityProviderUserParams();
ConfigurationParameters config = ConfigurationParameters.of(ImmutableMap.of(UserConfiguration.NAME, ConfigurationParameters.of(userParams)));
SecurityProvider sp = new SecurityProviderImpl(config);
uc = new UserConfigurationImpl(sp);
ConfigurationParameters cp = uc.getParameters();
QueryEngineSettings qes = new QueryEngineSettings();
QueryIndexProvider qip = new ReferenceIndexProvider();
contentRepository = new ContentRepositoryImpl(ns, new CommitRateLimiter(), "csmp", qes, qip, sp);
contentSession = contentRepository.login(new SimpleCredentials("admin", "admin".toCharArray()), null);
Root localRoot = contentSession.getLatestRoot();
um = uc.getUserManager(localRoot, NamePathMapper.DEFAULT);
um.createUser("boswelrp", "testpass");
repo = new Jcr(new Oak(ns)).createRepository();
А для входа использую:
oakRepo.login(username, password);
Приложение уже защищено, поэтому все, что мне действительно нужно, - это войти в систему с учетной записью пользователя, чтобы поля createdBy / modifiedBy можно было заполнить автоматически.