Старое приложение Spring Security SAML может получать метаданные поставщика удостоверений из серверного процесса с помощью HTTPMetadataProvider. Эта исходящая загрузка использует HTTP-клиент, переданный поставщику метаданных.

Для приложения, использующего стиль конфигурации Spring Security SAML 1.0.x/OpenSAML 2, настройте его Apache Commons HttpClient перед внедрением:

org.apache.commons.httpclient.HttpClient metadataHttpClient =
    new org.apache.commons.httpclient.HttpClient();
metadataHttpClient.getHostConfiguration()
    .setProxy("proxy.example", 8080);

Передайте этот настроенный объект в качестве аргумента конструктора HTTP-клиента org.opensaml.saml2.metadata.provider.HTTPMetadataProvider вместе с существующим таймером и URL метаданных. В XML-конфигурации указанный bean клиента должен быть именно этим настроенным экземпляром.

Сохраните существующий пул парсеров поставщика, конфигурацию обновления и окружающий менеджер метаданных. Изменение маршрута не заменяет эти обязанности.

URL метаданных остаётся URL поставщика удостоверений. Хост прокси относится к HTTP-клиенту. Для утверждённого и общедоступного URL метаданных HTTP-кандидат из списка HTTP-прокси может заполнить хост и порт этого клиента, когда публичные посредники разрешены и учетные данные прокси не сохраняются. Это путь получения на стороне сервера: успешное перенаправление браузера к поставщику удостоверений не доказывает, что сервер приложения может загружать или обновлять метаданные через свои сетевые ограничения.

Используйте эту конфигурацию только для перечисленных здесь старых классов. Современная поддержка Spring Security saml2 использует другой API, и bean, написанный для старого расширения, не взаимозаменяем с его текущей конфигурацией метаданных.

Похожие статьи