В настоящее время я внедряю Spring SAML 1.0.3 на свой сервер Spring Boot 2.
Я являюсь частью федерации SAML, и мне даны метаданные всех IdP и SP в виде огромных метаданных.файл и отдельный открытый ключ для проверки метаданных.
Серверу не удается проверить метаданные с использованием открытого ключа (присутствующего в хранилище ключей) при запуске, и выдает
org.opensaml.saml2.metadata.provider.FilterException:
Signature trust establishment failed for metadata entry
Думаю, я пришел к выводу, что проблема заключается в том, что внутри элемента метаданных <Signature/>
нет элемента <KeyInfo/>
.
Используемая реализация SignatureTrustEngine
по умолчанию - PKIXSignatureTrustEngine
, который, похоже, ожидает элемент <KeyInfo/>
внутри элемента <Signature/>
.Когда он не находит ничего, проверка метаданных завершается неудачей.
Я думаю, что моя проблема была бы решена путем использования реализации ExplicitKeySignatureTrustEngine
, которая, кажется, не зависит от элемента <KeyInfo/>
дляпроверка метаданных.Эта реализация проверяет только ключи в сконфигурированном хранилище ключей (куда я положил ключ).
Как правильно указать Spring SAML использовать ExplicitKeySignatureTrustEngine
вместо PKIXSignatureTrustEngine
в качествеэто SignatureTrustEngine
при проверке файла метаданных?