有没有一种在启动时在露天创建用户/组的简单方法?

时间:2016-10-23 13:16:03

标签: java spring alfresco

Here是alfresco-demo-data,它们创建用户,组和一些存储库。但是,如果您更深入地了解代码并检查PeopleUsersGroupAcpExporter,您会看到创建一些您需要的用户:

  1. 带有xml文件的acp存档,其中包含一个用户的大约10-15个属性
  2. 每个用户必须拥有密码哈希,passwprd2哈希和salt,例如目前还不清楚如何使用测试123密码创建用户。
  3. 创建几个类:PeopleUsersGroupAcpExporterDynamicBootstrapPatchPostProcessorResourcesResolverUsersImporterPatchGroupsImporterPatch包含大量代码。
  4. 最后,这些类将一些数据包装(放入)spring bean定义。

    在露天启动时,必须有更简单的方法来创建/导入用户和组。

    注1

    Here是一个非常相似的问题,但他们使用authenticationService,而不知道它是什么类型。有org.jbpm.security.AuthenticationServiceorg.alfresco.service.cmr.security.AuthenticationService,但两者都没有任何*create*方法

    注2

    Alfresco已经有一个功能csv import/expport user,但它仅限于用户。它不会自动将导入的用户附加到组。

2 个答案:

答案 0 :(得分:1)

是的,你可以在这里找到代码

if (this.authenticationService.authenticationExists(userName) == false)
{
   this.authenticationService.createAuthentication(userName, password.toCharArray());

   PropertyMap ppOne = new PropertyMap(4);
   ppOne.put(ContentModel.PROP_USERNAME, userName);
   ppOne.put(ContentModel.PROP_FIRSTNAME, "firstName");
   ppOne.put(ContentModel.PROP_LASTNAME, "lastName");
   ppOne.put(ContentModel.PROP_EMAIL, userName+"@example.com");
   ppOne.put(ContentModel.PROP_JOBTITLE, "jobTitle");

   this.personService.createPerson(ppOne);
}

答案 1 :(得分:1)

如果您在LDAP目录(如OpenLDAP或Apache Directory Server)中定义用户和组,则只需在alfresco-global.properties文件中添加大约十行配置,您的所有用户和组都将同步&# 39;每次创业时都进入Alfresco。这具有以下额外的优点:

  1. 允许您通过广泛使用的工具轻松管理用户和群组,
  2. 不需要任何自定义代码或额外设置,
  3. 为您的机器上的每个Alfresco实例工作(如果这是一个开发设置),
  4. 为您环境中的其他应用程序工作(如果这是prod设置)。