Портлет liferay: как использовать автологин (альтернативы тоже приветствуются)

Я использую внешнюю службу токенов для проверки своих пользователей, после чего они перенаправляются на портал (URL-адрес портала + некоторые параметры получения).
Теперь я хочу зарегистрировать этих пользователей на портале. Поскольку внешняя служба аутентификации находится вне моего контроля, я не могу просто связать ее с входом в портал. И поскольку я не могу расшифровать пароль учетной записи пользователя портала, я не могу просто создать ext-plugin и войти через него.

Итак, я немного поискал и наткнулся на то, что у liferay есть автологин.
Теперь мне стало интересно:

  1. могу ли я просто использовать это в обычном портлете, или он также должен быть в ext (до сих пор не знаю, как именно это сделать)
  2. какие переменные сеанса/куки мне нужно сделать?
  3. у кого-нибудь есть фрагмент кода/учебник, так как я еще не нашел полный.
  4. Насколько это осуществимо, учитывая будущие версии Liferay?

person jack    schedule 07.11.2010    source источник


Ответы (2)


Что это за «внешний сервис токенов»? Это система SSO (Single Sign On), с которой Liferay работает из коробки?

Взгляните на файл web.xml от liferay — там много фильтров SSO — вы найдете реализацию в исходном коде liferay. Эти фильтры используются для обработки систем SSO и делают все необходимое для входа в систему без проверки имени пользователя/пароля на самом портале. Возможно, вы сможете найти вариант, который лучше всего соответствует вашим потребностям здесь.

person Olaf Kock    schedule 09.11.2010

Создайте свой собственный фильтр (реализует com.liferay.portal.security.auth.AutoLogin):

public class YourAutoLogin implements AutoLogin {...}

и реализовать метод входа в систему с кодом:

public String[] login(HttpServletRequest req, HttpServletResponse resp)
  throws AutoLoginException {
    ...
    req.getSession().setAttribute(WebKeys.USER_ID,
    Long.valueOf(authenticatedUserId));
    ...
}

где authenticatedUserId равен идентификатору аутентифицированного пользователя в каталоге Liferay.

Добавьте фильтр как хук (файл /WEB-INF/classes/portal.properties в вашем веб-приложении):

auto.login.hooks=com.company.filter.YourAutoLogin
person F. Lancer    schedule 29.12.2010