Портлет liferay: как использовать аутологин (альтернативы также приветствуются) - PullRequest
2 голосов
/ 07 ноября 2010

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

Поэтому я немного искал и наткнулся на тот факт, что у Liferay есть аутологин.
Теперь мне было интересно:

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

Ответы [ 2 ]

1 голос
/ 29 декабря 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
0 голосов
/ 09 ноября 2010

Что это за "служба внешних токенов"? Это система единого входа (Single Sign On), с которой Liferay работает из коробки?

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

...