2017-04-21 28 views
1

我想獲取Alfresco中所有用戶的用戶名(字符串)。獲取所有Alfresco用戶(來自Java AMP)

我的代碼在Alfresco中作爲AMP運行。

如何做到這一點?


我嘗試使用PersonService但輸出沒有結果,即使我有露天多個用戶(通過共享管理界面創建):

RunAsWork runAsWork = new RunAsWork() { 
    @Override 
    public Object doWork() throws Exception { 
     return personService.getPeople("*", null, null, new PagingRequest(1000)); 
    } 
}; 
PagingResults<PersonInfo> results = 
    (PagingResults<PersonInfo>) AuthenticationUtil.runAsSystem(runAsWork); 

System.out.println("Number of users: " + results.getTotalResultCount()); 
while (results.hasMoreItems()) { 
    for (PersonInfo info : results.getPage()) { 
     System.out.println("User: " + info.getUserName()); 
    } 
} 

回答

0

用戶

人民API返回列表
http://server:port/alfresco/service/api/people 

或通過注入 serviceRegistry

試試這個​​

希望這會幫助你。

+0

我寧願避免使用HTTP API,以避免存儲密碼的方式多。感謝Java代碼! –

0

這可能是你的放大器認證的問題,你可以試試這個: (PagingResults)AuthenticationUtil.runAs(runAsWork,AuthenticationUtil.getSystemUserName());

這與您所做的事情是一樣的,但之前在舊的回購中遇到runAsSystem問題。否則,這裏有PersonService.PersonInfo

1
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()); 

與人服務搞亂這個代碼將記錄所有用戶在戶外

相關問題