подключение к Jenkins с собственным провайдером openid (simpleid)

Кто-нибудь знает, как подключиться к Jenkins с собственным провайдером openid?

У нас есть провайдер openid на нашем веб-сайте - simpleid (http://simpleid.koinic.net/) Я стараюсь чтобы связать его с Дженкинсом. Я проверил, могу ли я подключиться к Jenkins с учетной записью google, myopenid, .... Но когда я пытаюсь добавить свой URL-адрес openidprovider в OpenID SSO и сохранить эти изменения в MYJENKINS / configure, я получаю исключение Java:

Exception: java.lang.RuntimeException: Failed to instantiate class hudson.plugins.openid.OpenIdSsoSecurityRealm from {"endpoint":"MY_OPENID_URL","stapler-class":"hudson.plugins.openid.OpenIdSsoSecurityRealm","value":"4

Когда я пытаюсь зайти на любой другой сайт (каждый сайт, который я знаю), я могу его сохранить.

Что не так с нашей конфигурацией сервера openid?

Спасибо!


person user1067939    schedule 10.09.2012    source источник


Ответы (1)


Мы столкнулись с той же проблемой. Вот что мы обнаружили:

Если вы внимательно изучите исключение, вы заметите, что основная причина возникновения исключения описана в трассировке стека.

Caused by: org.openid4java.discovery.DiscoveryException: 0x70d: Error parsing XML document
.
.
.   
Caused by: org.xml.sax.SAXParseException; lineNumber: 4; columnNumber: 15; cvc-complex-type.2.4.a: Invalid content was found starting with element 'Type'. One of '{"xri://$xrd*($v*2.0)":Query, "xri://$xrd*($v*2.0)":Status, "xri://$xrd*($v*2.0)":ServerStatus, "xri://$xrd*($v*2.0)":Expires, "xri://$xrd*($v*2.0)":ProviderID, "xri://$xrd*($v*2.0)":Redirect, "xri://$xrd*($v*2.0)":Ref, "xri://$xrd*($v*2.0)":LocalID, "xri://$xrd*($v*2.0)":EquivID, "xri://$xrd*($v*2.0)":CanonicalID, "xri://$xrd*($v*2.0)":CanonicalEquivID, "xri://$xrd*($v*2.0)":Service, WC[##other:"xri://$xrd*($v*2.0)"], WC[""]}' is expected. at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException

Похоже, что простой идентификатор использует простой XRDS, формат, который был отменен в конце 2008 года. Я не уверен, что это все еще действительный ответ OpenID 2.0, но я знаю, что Дженкинс не может его проанализировать.

Если вы вручную отредактируете документ XRDS (просто удалите <Type>xri://$xrds*simple</Type> из документа) и укажете Jenkins на расположение файла, который вы отредактировали (и сделали доступным на http-сервере), вы сможете сохранить конфигурацию без ошибок. .

Но, к сожалению, это все равно не сработает. При попытке авторизации будет отображаться следующая ошибка:

javax.servlet.ServletException: org.openid4java.consumer.ConsumerException: 0xa00: Authentication cannot continue: no discovery information provided.

Похоже, SimpleID поддерживает конечную точку для каждого пользователя, но не предоставляет единую конечную точку для нескольких пользователей - это то, что нужно Jeknins в режиме SSO.

Итог - вам придется использовать другого провайдера OpenID, чем SimpleID

person Zvi    schedule 16.09.2012