如何在AEM6.1中获取给定组的用户列表

时间:2016-01-06 11:19:27

标签: cq5 aem

我有一个用例需要获取给定组的所有用户,然后获取所有发送通知的电子邮件ID。 以下是我的代码段。

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 个答案:

答案 0 :(得分:1)

以下代码片段在here中正常工作:

pom.xml

您是否以正确的方式导入AEM 6.1课程? <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> 中的导入示例:

classifier

提示1 apis可以有obfuscated-apisoutput { elasticsearch { hosts => ["localhost:9200"] index => "logstash-%{index_name}_logs" } } 值,具体取决于您对jar的访问级别。 Groovy Console

提示2 : 请尽量避免使用管理资源解析程序More information.

提示3 : 您可以在以下网址since it's deprecated

下找到本地实例的适配器和适配表