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