Проблема петли перенаправления для агента веб-политики? - PullRequest
6 голосов
/ 21 июня 2011

Я следовал руководству по установке для агента веб-политики Apache, но это всегда приводит к бесконечному циклу перенаправления между веб-сервером и сервером приложений.Firefox говорит: «Страница не перенаправляет должным образом», а Chrome считает, что «Эта веб-страница имеет цикл перенаправления».Это Apache 2 с портом 80 с небольшим демонстрационным приложением и агентом веб-политики, а также сервер Tomcat 7 с портом 8080 с сервером OpenAM (бывший OpenSSO от Sun):

Плагин Live HTTP Header Firefox показывает, что агент политики и сервер OpenAM (то есть серверы Apache и Tomcat) перенаправляют друг друга, хотя сервер правильно устанавливает файл cookie SSO Token.Имя файла cookie для единого входа имеет значение по умолчанию «iPlanetDirectoryPro».Есть идеи, как решить проблему?

Ответы [ 2 ]

8 голосов
/ 24 июня 2011

После целой недели я наконец-то понял это с помощью Stackoverflow и OpenAM Mailing list . Были две основные проблемы: отсутствующие файлы журнала и отсутствующие домены cookie. Установка сервера OpenAM и агента веб-политики затруднена, существует множество файлов журналов и множество различных параметров конфигурации. Если вы выберете неправильные опции, это не сработает. Невозможно заставить его работать, не зная, что происходит, что можно определить только по подходящему файлу журнала.

Отсутствует журнал для агента веб-политики : Уровень журнала должен быть задан в файлах «Свойства Java». Для агента веб-политики есть два файла «Свойства Java», OpenSSOAgentBootstrap.properties и OpenSSOAgentConfiguration.properties. Уровень журнала и отладки с именем com.sun.identity.agents.config.debug.level может и должен быть определен в обоих (!) Файлах, а также должен быть установлен высокий уровень, all:4 или all:5. Формат важен. Даже если вы сделаете это, файл AgentConfiguration.properties используется только в том случае, если агент не работает в режиме централизованной конфигурации. Профиль должен быть установлен на "local".

Отсутствует домен cookie : Не забудьте ввести правильный домен cookie в начале настройки сервера OpenAM или добавить его позже, если он отсутствует. На сервере OpenAM перейдите на Configuration > System > Platform и измените значение домена cookie на свой домен (для instace .example.com), если он отсутствует. В противном случае браузер потеряет ваш файл cookie во время процесса перенаправления. Каким-то образом у меня была пустая запись для домена cookie на сервере OpenAM, я думаю, забыл точку (example.com вместо .example.com), чтобы она была недействительной (или что-то в этом роде).

Этот сайт для устранения неполадок был полезен для поиска проблемы.

1 голос
/ 21 мая 2015

@ 0x4a6f4672, Ваш пост был абсолютно полезным.Еще немного, чтобы добавить к вашему ответу.Следующие изменения - это то, что я должен был сделать в конфигурации, чтобы он работал, по крайней мере, чтобы он запускался на alfresco.

com.sun.identity.agents.config.user.mapping.mode=USER_ID(Dont use HTTP_HEADER)
com.sun.identity.agents.config.user.attribute.name=uid
com.sun.identity.agents.config.user.principal=true(Dont use false)
com.sun.identity.agents.config.user.token=SsoUserHeader(Keep it as per what is specified in you application- in my case alfresco)

Теперь вы запускаете агент не в централизованном режиме, а в локальном режиме.параметр, заданный для атрибута профиля, может быть установлен только через файл свойств, поэтому добавьте следующее.

com.sun.identity.agents.config.profile.attribute.fetch.mode=HTTP_HEADER
com.sun.identity.agents.config.profile.attribute.mapping[uid]=SsoUserHeader(whatever you want the header to come in browser as)

Как сказано в 0x4a6f4672, его сложно отлаживать, и если вы не находитесь в локальном режиме, поэтому переключитесь нанемедленно в локальном режиме и начните трассировать логи и соответственно измените свойства.

...