Токен Rampart SAML отсутствует в запросе

Кто-нибудь знает, почему Rampart не может найти токен SAML, сгенерированный собственной службой STS?

У меня есть развертывание Axis2 1.6.2 в Tomcat 7.0.28 с Rampart 1.6.2. Я использую службу Rampart STS для получения токена SAML по умолчанию. Токен, полученный клиентом, является действительным. (Я проверил подписи, профиль SAML и XML с помощью OpenSAML.)

Однако, когда я включаю этот токен в запрос веб-службы, запущенный в том же развертывании Axis2/Rampart, которое сгенерировало токен, Rampart выдает «Токен SAML отсутствует в запросе» (выданный RampartEngine.process()). Используя отдельную реализацию в NetKernel и OpenSAML, у меня нет проблем с доступом и проверкой токена SAML в одном и том же запросе. Эта проблема существует с Axis2/Rampart 1.5.1, когда я впервые попытался выполнить эту задачу.

Кто-нибудь знает, почему Rampart отклоняет собственный токен SAML? Вы нашли способ заставить Rampart принимать собственный токен SAML?

(Я работаю над этой проблемой время от времени больше года; я могу просто бросить и использовать Netkernel и OpenSaml и сделать все это самостоятельно; я теряю много поддержки SOAP, но, по крайней мере, я могу обрабатывать токен SAML ... с большой помощью OpenSAML. Я бы предпочел, чтобы Axis2/Rampart работал!)

У меня может быть частичный ответ на этот вопрос. Следуя исходному коду, я смог отследить «Отсутствие токена SAML» до строки в валидаторе, который проверяет только неподписанные токены SAML. Токены SAML должны быть подписаны. Я считаю, что это причина ошибки, но я не могу собрать модули вала, чтобы проверить это!

ОТВЕТ Я смог, наконец, собрать проект и проверить приведенное выше предположение, и это действительно решило проблему. Я изменил код для обращения как к подписанным, так и к неподписанным токенам. Отправил вопрос JIRA в Rampart и решение и надеюсь, что они решат его. Тем временем я сделал локальную версию Rampart-Core-*.jar для своего сервиса.


person Brian Reinhold    schedule 08.09.2012    source источник


Ответы (2)


Ответ, который я изложил выше, верен и был включен Rampart. Должен быть в следующем релизе (кажется, 1.6.3).

person Brian Reinhold    schedule 14.08.2013

Я и представить себе не мог, что в Rampart столько ошибок, особенно в отношении SAML. Не все образцы, которые они публикуют, работают. Для примера 5 мне пришлось изменить не только код, который вы указали, но и модуль Rampart-Trust (SAMLUtils.class) из-за ошибки в пространстве имен, связанной с отпечатком пальца. Но теперь, наконец, это работает. Большое спасибо за ваш пост. :)

person Aurea    schedule 19.01.2014