Ошибка при использовании OPENSAML2 в среде сервлета (веб-сервер Tomcat) - PullRequest
1 голос
/ 30 сентября 2011

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

Я могу создать пакет SAML, однако я хочу, чтобы Base64 кодировал SAML, чтобы я мог перенаправить браузер пользователя на сервер поставщика удостоверений. Для этого я пытаюсь выполнить маршалинг запроса аутентификации 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. Было бы хорошо, если бы кто-то мог помочь мне выяснить, что здесь происходит. Это также поможет другим, пытающимся написать своих собственных поставщиков услуг. Удивительно, но для этого доступно меньше документации.

Спасибо, Kaustubh

Ответы [ 2 ]

2 голосов
/ 01 октября 2011

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

  • СКВТ 2.9.1.jar
  • сериализатору-2.9.1.jar
  • Xalan-2.7.1.jar
  • xercesImpl-2.9.1.jar
  • XML-АПИС-2.9.1.jar

Здесь - пример поставщика услуг SAML2 [также включает пример WAR].

0 голосов
/ 24 августа 2012

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

...