Liferay 7 - установить атрибут общего сеанса в классе Authenticator - PullRequest
0 голосов
/ 14 февраля 2019

Мне нужно установить сеанс в Аутентификатор , класс (key=auth.pipeline.pre) в Liferay.В этом классе Authenticator мне нужно проверить учетные данные через другой веб-сервис и установить некоторые атрибуты в сеансе, которые должны использоваться совместно с каждым другим портлетом.

Я знаю эту тему: Атрибуты общего сеанса Liferay 7 Shared

Проблема в том, что я не могу получить запрос (в том числе portletRequest) в классе Authenticator.

Я пробую решение с PortalSessionThreadLocal следующим образом:

String sharedKey = "LIFERAY_SHARED_" + key;
HttpSession session = PortalSessionThreadLocal.getHttpSession();
session.setAttribute(sharedKey, bean);

, но я не могу получить этот атрибут сеанса в другом портлете следующим образом:

key = "LIFERAY_SHARED_" + key;
HttpSession session = PortalSessionThreadLocal.getHttpSession();
Object bean = session.getAttribute(key);

МожетВы рекомендуете мне какое-то решение?

Ответы [ 2 ]

0 голосов
/ 15 февраля 2019

У нас был похожий вариант использования.Мы использовали расширенные / настраиваемые поля для сохранения пользовательской информации, получаемой с помощью внешних вызовов веб-служб во время аутентификации пользователя, либо в настраиваемом фильтре автоматического входа в систему для единого входа, либо в настраиваемом портлете входа в систему.

Однажды сохраненные расширения можно получить с помощью вызовов API в пользовательских модулях.

Пример вызова API для сохранения расширения:

user.getExpandoBridge().setAttribute("example", "value", false);

Дляподробнее вы можете посмотреть на этот пост: Expandos

0 голосов
/ 14 февраля 2019

Мне кажется, у вас есть две проблемы, которые нужно искать в вашем случае, одна из них - это объем, предложенный в сообщении, которое вы связали.

А вторая - тот факт, что атрибуты сеанса обычно не сохраняютсяконвейер аутентификации, если у вас включена защита от фишинга.

Выживают только атрибуты из белого списка, которые должны быть настроены в вашем portal-ext.properties.

...