使用 Apache Oak 进行用户管理
User management with Apache Oak
我正忙于设置 oak 存储库。当我使用默认管理员用户时一切正常,但是当我尝试使用 UserManager 设置新帐户时,我要么得到登录失败异常,要么使用备用存储库设置,我可以创建用户,但是当我登录时使用该用户,session.getUserID
returns 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 字段。
幸运的是,我刚刚在 oak 邮件列表中找到了答案。
session = repo.login(new SimpleCredentials("admin", "admin".toCharArray()));
if(session instanceof JackrabbitSession)
{
UserManager um = ((JackrabbitSession) session).getUserManager();
}
我正忙于设置 oak 存储库。当我使用默认管理员用户时一切正常,但是当我尝试使用 UserManager 设置新帐户时,我要么得到登录失败异常,要么使用备用存储库设置,我可以创建用户,但是当我登录时使用该用户,session.getUserID
returns 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 字段。
幸运的是,我刚刚在 oak 邮件列表中找到了答案。
session = repo.login(new SimpleCredentials("admin", "admin".toCharArray()));
if(session instanceof JackrabbitSession)
{
UserManager um = ((JackrabbitSession) session).getUserManager();
}