레거시 Spring Security SAML 애플리케이션은 HTTPMetadataProvider를 사용해 서버 프로세스에서 ID 공급자 메타데이터를 가져올 수 있습니다. 이 외부 다운로드는 메타데이터 공급자에게 전달된 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);

구성한 객체를 기존 타이머와 메타데이터 URL과 함께 org.opensaml.saml2.metadata.provider.HTTPMetadataProvider의 HTTP 클라이언트 생성자 인수로 전달합니다. XML 구성에서는 참조하는 클라이언트 빈이 바로 이 구성된 인스턴스여야 합니다.

공급자의 기존 파서 풀, 갱신 구성, 주변 메타데이터 관리자는 그대로 유지합니다. 경로를 바꾼다고 해서 이런 책임이 대체되지는 않습니다.

메타데이터 URL은 ID 공급자의 URL 그대로입니다. 프록시 호스트는 HTTP 클라이언트에 둡니다. 승인되었고 공개적으로 접근 가능한 메타데이터 URL이라면 공개 중계자가 허용되고 프록시 자격 증명을 보관하지 않는 경우 HTTP 프록시 목록의 HTTP 후보로 해당 클라이언트의 호스트와 포트를 채울 수 있습니다. 이것은 서버 측 가져오기 경로입니다. 브라우저가 ID 공급자로 정상 리디렉션되었다고 해서 애플리케이션 서버가 자체 네트워크 제한을 넘어 메타데이터를 내려받거나 갱신할 수 있다는 뜻은 아닙니다.

이 구성은 여기서 언급한 레거시 클래스에만 사용하십시오. 최신 Spring Security saml2 지원은 다른 API를 사용하며, 이전 확장용으로 작성한 빈은 현재 메타데이터 구성과 호환되지 않습니다.

관련 글