Ошибка маршалинга при использовании OPENSAML2 в среде сервлетов (веб-сервер Tomcat)

Я пытаюсь настроить своего поставщика услуг с помощью библиотек OpenSAML2. Я пытаюсь настроить сервлет, который будет принимать HttpRequest из браузера пользователя, и на основе параметров запроса я хочу создать пакет запроса аутентификации SAML.

Я могу создать пакет SAML, однако хочу, чтобы SAML закодировал в Base64, чтобы можно было перенаправить браузер пользователя на сервер поставщика удостоверений. Для этого я пытаюсь организовать запрос аутентификации SAML, используя org.opensaml.saml2.core.impl.AuthnRequestMarshaller # marshall (AuthnRequest).

Это отлично работает, когда я пробую его вне среды веб-сервера (автономное приложение JAVA). Однако, когда я запускаю его как компонент сервлета, я получаю сообщение об ошибке: «Нет доступного маршаллера для {urn: oasis: names: tc: SAML: 2.0: assertion} Эмитент, потомок {urn: oasis: names: tc: SAML: 2.0. : protocol} AuthnRequest ", где Issuer - компонент объекта AuthnRequest.

Я использую веб-сервер Tomcat 5.5.34. Было бы неплохо, если бы кто-нибудь помог мне разобраться, что здесь происходит. Это помогло бы и другим, пытающимся написать своих собственных поставщиков услуг. Удивительно, но для этого доступно очень мало документации.

Спасибо, Каустубх


person kaustubh    schedule 29.09.2011    source источник


Ответы (2)


В общем / одобренном каталоге Tomcat должны быть следующие jar-файлы.

  • resolver-2.9.1.jar
  • сериализатор-2.9.1.jar
  • xalan-2.7.1.jar
  • xercesImpl-2.9.1.jar
  • xml-apis-2.9.1.jar

пример поставщика услуг SAML2 [также включает образец WAR].

person Prabath Siriwardena    schedule 01.10.2011

Прабат очень скоро ответит. Я столкнулся с той же проблемой и решил ее, поддержав xalan и xerces в Sun iJDK. Ознакомьтесь с официальным руководством на сайте Shibboleth. Посмотрите в разделе «Установка библиотеки» требования к развертыванию openSAML.

person verboze    schedule 24.08.2012