2016-01-06 73 views
0

我有用例需要获取给定组的所有用户,然后获取所有的电子邮件ID发送通知。 以下是我的代码片段。如何获取AEM6.1中给定组的用户列表

public void getUserName() { 
    ResourceResolver resourceResolver = null; 
    try { 
     resourceResolver = resourceResolverFactory.getAdministrativeResourceResolver(null); 
     if(null !=resourceResolver) { 
      Session session = resourceResolver.adaptTo(Session.class); 
      resourceResolver = getResourceResolver(session); 
      // UserManager userManager =((JackrabbitSession) session).getUserManager(); 
      UserManager userManager = resourceResolver.adaptTo(UserManager.class); 
      Authorizable authorizable= userManager.getAuthorizable("mygroup"); 
      org.apache.jackrabbit.api.security.user.Group group = (org.apache.jackrabbit.api.security.user.Group) authorizable; 
      Iterator itr = group.getMembers(); 
      while(itr.hasNext()) { 
       Object obj = itr.next(); 
       if(obj instanceof User) { 
        User user = (User) obj; 
        System.out.println("Name"+user.getID()); 
        Authorizable userAuthorization = userManager.getAuthorizable("user.getID()"); 
        if(userAuthorization.hasProperty("/profile/email")) { 
         System.out.println("EMailID-----"+userAuthorization.getProperty("/profile/email").toString()); 
        } 
       } 
      } 
     } 
    } catch (LoginException e) { 
     e.printStackTrace(); 
    } catch (RepositoryException e) {  
     e.printStackTrace(); 
    } 
} 

,但在行

UserManager userManager = resourceResolver.adaptTo(UserManager.class); 

我越来越

“无法解析类型: org.apache.jackrabbit.api.security.user.UserManager”。

注:我正在研究AEM6.1。

回答

1

继代码片段只是正常工作在Groovy Console

import org.apache.jackrabbit.api.security.user.UserManager; 

def resourceResolverFactory = getService("org.apache.sling.api.resource.ResourceResolverFactory") 
def resourceResolver = resourceResolverFactory.getAdministrativeResourceResolver(null); 
UserManager userManager = resourceResolver.adaptTo(UserManager.class); 

def authorizable= userManager.getAuthorizable("everyone"); 

是否进口AEM 6.1类的正确方法?例如进口在pom.xml

<dependency> 
    <groupId>com.adobe.aem</groupId> 
    <artifactId>uber-jar</artifactId> 
    <version>6.1.0</version> 
    <classifier>apis</classifier> 
    <!--<classifier>obfuscated-apis</classifier>--> 
    <scope>provided</scope> 
</dependency> 

提示1classifier可以apisobfuscated-apis值,根据您的访问罐子的水平。 More information.

提示2: 请尽量避免行政资源解析器,since it's deprecated

提示3:在你的本地实例 适配器和adaptables可以以下网址下总是发现http://localhost:4502/system/console/adapters

相关问题