Uma aplicação Spring Security SAML legada pode buscar os metadados do provedor de identidade a partir do processo do servidor com HTTPMetadataProvider. Esse download de saída usa o cliente HTTP fornecido ao provedor de metadados.

Para uma aplicação que usa o estilo de configuração Spring Security SAML 1.0.x/OpenSAML 2, configure o seu Apache Commons HttpClient antes de injetá-lo:

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

Passe esse objeto configurado como argumento do construtor do cliente HTTP de org.opensaml.saml2.metadata.provider.HTTPMetadataProvider, junto com o timer e a URL de metadados existentes. Numa configuração XML, o bean de cliente referenciado deve ser exatamente esta instância configurada.

Mantenha o conjunto de analisadores existente do provedor, a configuração de atualização e o gerenciador de metadados ao redor. Alterar a rota não substitui essas responsabilidades.

A URL de metadados continua a ser a URL do provedor de identidade. O host do proxy pertence ao cliente HTTP. Para uma URL de metadados aprovada e acessível publicamente, um candidato HTTP da lista de proxies HTTP pode preencher o host e a porta desse cliente quando intermediários públicos são permitidos e nenhuma credencial de proxy é retida. Este é um caminho de obtenção no servidor: um redirecionamento bem-sucedido do navegador para o provedor de identidade não mostra que o servidor de aplicação consegue baixar ou atualizar metadados através das suas próprias restrições de rede.

Use esta configuração apenas para as classes legadas nomeadas aqui. O suporte moderno do Spring Security saml2 usa outra API, e um bean escrito para a extensão antiga não é intercambiável com a sua configuração atual de metadados.

Artigos relacionados