获取所有Alfresco用户(来自Java AMP)

获取所有Alfresco用户(来自Java AMP),alfresco,Alfresco,我想获取Alfresco中所有用户的用户名(字符串) 我的代码在Alfresco内部作为放大器运行 怎么做 我尝试使用,但没有结果,即使我有几个用户在Alfresco(通过共享管理界面创建): RunAsWork RunAsWork=new RunAsWork(){ @凌驾 公共对象doWork()引发异常{ return personService.getPeople(“*”,null,null,new PagingRequest(1000)); } }; PagingResults结果=

我想获取Alfresco中所有用户的用户名(字符串)

我的代码在Alfresco内部作为放大器运行

怎么做


我尝试使用,但没有结果,即使我有几个用户在Alfresco(通过共享管理界面创建):

RunAsWork RunAsWork=new RunAsWork(){
@凌驾
公共对象doWork()引发异常{
return personService.getPeople(“*”,null,null,new PagingRequest(1000));
}
};
PagingResults结果=
(PaginResults)AuthenticationUtil.runAsSystem(runAsWork);
System.out.println(“用户数:+results.getTotalResultCount());
while(results.hasMoreItems()){
for(PersonInfo信息:results.getPage()){
System.out.println(“用户:+info.getUserName());
}
}

人员api返回用户列表

http://server:port/alfresco/service/api/people
或者通过注射来尝试
serviceRegistry

try {


                    Set<String> authorities = serviceRegistry.getAuthorityService().getAllAuthorities(AuthorityType.USER);


                    for (String authority : authorities) {
                        NodeRef person = serviceRegistry.getPersonService().getPerson(authority);

                        Map<QName, Serializable> properties = serviceRegistry.getNodeService().getProperties(person);

                        String fullName=properties.get(ContentModel.PROP_FIRSTNAME) +" "+properties.get(ContentModel.PROP_LASTNAME); 
                        System.out.println("User Full Name "+fullName);

                    }       

            } catch (Exception e) {
            e.printStackTrace();
        }
试试看{
设置权限=serviceRegistry.getAuthorityService().getAllAuthorities(AuthorityType.USER);
for(字符串权限:权限){
NodeRef person=serviceRegistry.getPersonService().getPerson(权限);
Map properties=serviceRegistry.getNodeService().getProperties(person);
字符串fullName=properties.get(ContentModel.PROP_FIRSTNAME)+“”+properties.get(ContentModel.PROP_LASTNAME);
System.out.println(“用户全名”+全名);
}       
}捕获(例外e){
e、 printStackTrace();
}

希望这将对您有所帮助。

您的amp的身份验证可能有问题,您可以尝试以下方法: (pagingreults)AuthenticationUtil.runAs(runAsWork,AuthenticationUtil.getSystemUserName())

这和你做的是一样的,但我以前在旧回购协议上运行系统时遇到了问题。除此之外,还有更多方法可以搞乱这里的person服务

PersonService PersonService=documentService.serviceRegistry.getPersonService();
PagingResults users=personService.getPeople(“*”,new ArrayList(),new ArrayList(),new PagingRequest(personService.countPeople());
logger.info(“系统中的用户数”+personService.countPeople());
做{
List personinfo=users.getPage();
for(PersonInfo PersonInfo:personInfos){
logger.info(“用户名:+personInfo.getUserName());
}
}while(users.hasMoreItems());

此代码将记录alfresco中的所有用户

我宁愿避免使用HTTP API来避免存储密码。谢谢你的Java代码!
try {


                    Set<String> authorities = serviceRegistry.getAuthorityService().getAllAuthorities(AuthorityType.USER);


                    for (String authority : authorities) {
                        NodeRef person = serviceRegistry.getPersonService().getPerson(authority);

                        Map<QName, Serializable> properties = serviceRegistry.getNodeService().getProperties(person);

                        String fullName=properties.get(ContentModel.PROP_FIRSTNAME) +" "+properties.get(ContentModel.PROP_LASTNAME); 
                        System.out.println("User Full Name "+fullName);

                    }       

            } catch (Exception e) {
            e.printStackTrace();
        }
PersonService personService = documentService.serviceRegistry.getPersonService();
PagingResults<PersonInfo> users = personService.getPeople("*", new ArrayList<QName>(), new ArrayList<Pair<QName,Boolean>>(), new PagingRequest(personService.countPeople()));
logger.info("The number of users in the system" + personService.countPeople());
do {
        List<PersonInfo> personInfos = users.getPage();
        for(PersonInfo personInfo : personInfos) {
            logger.info("User Name: " + personInfo.getUserName());
        }
} while(users.hasMoreItems());