替代AEM中已弃用的方法?

时间:2016-02-25 17:18:21

标签: java cq5 aem

获取用户名或用户电子邮件,

com.day.cq.security.profile.Profile

可以使用。但它是从CQ5.5中删除的。 应该做些什么?

2 个答案:

答案 0 :(得分:4)

使用org.apache.jackrabbit.api.security.user包中的类。您可以通过User访问UserManager(您可以通过adaptTo(UserManager.class)致电ResourceResolver获取)。 User支持getProperty方法,该方法可用于获取"profile/email""profile/familyName"等。

修改

WorkflowProcess.execute方法具有WorkflowSession参数。要从UserManager访问WorkflowSession,请将其会话转换为org.apache.jackrabbit.api.JackrabbitSession,其getUserManager()方法:

JackrabbitSession js = (JackrabbitSession)workflowSession.getSession();
UserManager um = js.getUserManager();

答案 1 :(得分:0)

我更喜欢以下内容,因为可以从UserProperties获取可用属性,并且API可以告诉我们是否将来会再次弃用该属性:

    UserProperties up = request.adaptTo(UserProperties.class); 
    up.getProperty(UserProperties.EMAIL);