Чтобы получить имя пользователя или адрес электронной почты пользователя,

com.day.cq.security.profile.Profile

Может быть использован. Но он устарел с CQ5.5. Что нужно делать?

3
Dileepa 25 Фев 2016 в 20:18

2 ответа

Лучший ответ

Используйте классы из пакета 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();
4
jwepurchase 26 Фев 2016 в 15:45

Я предпочитаю это ниже, потому что можно получить доступные свойства из UserProperties, и API может сказать нам, будет ли он снова устаревшим в будущем:

    UserProperties up = request.adaptTo(UserProperties.class); 
    up.getProperty(UserProperties.EMAIL);
0
Anselm 30 Апр 2019 в 09:57