Управление пользователями с помощью Apache Oak

Занимаюсь настройкой репозитория дуба. Все работает нормально, когда я использую администратора по умолчанию, но когда я пытаюсь использовать 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 можно было заполнить автоматически.


person raymondboswel    schedule 04.02.2015    source источник
comment
Этот вопрос слишком общий.   -  person Jørgen R    schedule 04.02.2015
comment
Спасибо, надеюсь, мои намерения немного яснее.   -  person raymondboswel    schedule 04.02.2015


Ответы (1)


Как назло, я только что нашел ответ в списке рассылки oak.

session = repo.login(new SimpleCredentials("admin", "admin".toCharArray()));

if(session instanceof JackrabbitSession)
{
     UserManager um = ((JackrabbitSession) session).getUserManager();
}
person raymondboswel    schedule 04.02.2015