JASIG CAS Войти программно (с Liferay) - PullRequest
1 голос
/ 27 августа 2010

Я использую JASIG CAS для единого входа с liferay.Теперь он работает нормально, когда я напрямую пытаюсь войти, потому что перенаправление там с CASFilter.Он перенаправляет на страницу входа в CAS, и после успешного входа в систему он перенаправляет на указанный URL нашего приложения.

Теперь я хочу войти в CAS, используя портлет входа в систему liferay.Этот портлет предоставляет логин в liferay, так же как и логин, но его отправляющий URL - это diff.Таким образом, CAS перенаправление здесь не работает.

И я не хочу, чтобы здесь запрашивался логин для CAS.После входа в liferay, я хочу войти непосредственно в CAS.Я проверил, используя Apache HttpClient, но он не работает.Я пытался использовать метод POST со всеми полями ввода.Проблема в том, что CAS использует одно скрытое поле с именем lt, которое является случайной строкой при каждой загрузке страницы входа.Поэтому, когда я программно получаю доступ к странице, я не могу прочитать это поле.

Если мы дадим более старый lt, то он также не будет работать.

Итак, кто-нибудь еще видел?

1 Ответ

1 голос
/ 30 августа 2010

Я отправил вопрос в мою компанию Smile.fr. Смотрите ответ одного из моих техников, переведенный ниже.

Поле lt - билет для входа в систему, чтобы попасть на сервер CAS до начала аутентификации.

Чтобы избежать формы CAS:

  1. Получите один входной билет на сервере CAS
  2. Запрос аутентификации Sen с учетными данными, URL-адресом lt и back service (тот, который мы только что вошли в систему)

Вход через сервер CAS является обязательным, поскольку он является единственным, кто может отправить TGC, запрошенный для получения билетов за услуги в ответ.

Несколько ссылок:

https://wiki.jasig.org/display/CAS/Using+CAS+without+the+CAS+login+screen

https://wiki.jasig.org/display/CAS/Using+CAS+without+the+Login+Screen

Хорошей идеей считается «почему бы не сделать это» в первой ссылке.

...