AEM中弃用方法的替代方案是什么?

3
获取用户名或用户电子邮件,
com.day.cq.security.profile.Profile

可以使用,但在CQ5.5中已被弃用。 有什么解决办法吗?

2个回答

4
使用来自org.apache.jackrabbit.api.security.user包的类。您可以通过调用ResourceResolver上的adaptTo(UserManager.class)来访问UserManager(可以通过UserManager访问User)。User支持getProperty方法,可用于获取"profile/email""profile/familyName"等。 编辑 WorkflowProcess.execute方法具有WorkflowSession参数。要从WorkflowSession访问UserManager,请将其会话转换为org.apache.jackrabbit.api.JackrabbitSession,该会话具有getUserManager()方法:
JackrabbitSession js = (JackrabbitSession)workflowSession.getSession();
UserManager um = js.getUserManager();

WorkflowProcess中使用resourceResolverFactory.getThreadResourceResolver().adaptTo(UserManager.class)来获取UserManager是否安全? - Dileepa
1
@Dileepa - 或许这么做是安全的,但不是我的方式。请看我的修改。 - jwepurchase

0

我更喜欢下面这个,因为可以从UserProperties获取可用属性,而API可以告诉我们它是否将在未来被弃用:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接