59장. 인터셉터를 사용하도록 끝점 구성
초록
인터셉터는 메시지 교환에 포함될 때 엔드포인트에 추가됩니다. 엔드포인트의 인터셉터 체인은 Apache CXF 런타임의 여러 구성 요소의 인터셉터 체인에서 구성됩니다. 인터셉터는 끝점의 구성 또는 런타임 구성 요소 중 하나의 구성에 지정됩니다. 구성 파일 또는 인터셉터 API를 사용하여 인터셉터를 추가할 수 있습니다.
59.1. 인터셉터를 연결할 위치 결정
59.1.1. 개요
인터셉터 체인을 호스팅하는 여러 런타임 오브젝트가 있습니다. 여기에는 다음이 포함됩니다.
- 끝점 오브젝트
- 서비스 오브젝트
- 프록시 오브젝트
- 엔드 포인트 또는 프록시를 생성하는 데 사용되는 팩토리 오브젝트
- 바인딩
-
central
버스
오브젝트
개발자는 이러한 오브젝트 중 하나에 자체 인터셉터를 연결할 수 있습니다. 인터셉터를 연결하는 가장 일반적인 오브젝트는 버스와 개별 끝점입니다. 올바른 오브젝트를 선택하려면 이러한 런타임 개체를 결합하여 끝점을 만드는 방법을 이해해야 합니다. 설계에 따라 각 Cxf 관련 번들에는 자체 cxf 버스가 있습니다. 따라서 인터셉터가 버스에 구성되어 동일한 블루프린트 컨텍스트에서 서비스를 가져오거나 다른 번들로 생성하면 인터셉터가 처리되지 않습니다. 대신 가져온 서비스의 CryostatWS 클라이언트 또는 엔드포인트로 인터셉터를 직접 구성할 수 있습니다.
59.1.2. 끝점 및 프록시
인터셉터를 인터셉터를 배치하는 끝점 또는 프록시에 인터셉터를 연결하는 것이 가장 세분화된 방법입니다. 끝점 또는 프록시에 직접 연결된 모든 인터셉터는 특정 끝점 또는 프록시에만 영향을 미칩니다. 이는 서비스의 특정 구현에 고유한 인터셉터를 연결하는 데 적합합니다. 예를 들어 개발자가 단위를 지표에서 제국으로 변환하는 서비스 인스턴스 중 하나를 노출하려는 경우 인터셉터를 하나의 끝점에 직접 연결할 수 있습니다.
59.1.3. 팩토리
Spring 구성을 사용하여 엔드포인트 또는 프록시를 생성하는 데 사용되는 팩토리에 인터셉터를 연결하면 인터셉터를 엔드포인트 또는 프록시에 직접 연결하는 것과 동일한 효과가 있습니다. 그러나 인터셉터가 팩토리에 연결되면 프로그래밍 방식으로 팩토리에 연결된 인터셉터는 팩토리에서 생성한 모든 끝점 또는 프록시로 전파됩니다.
59.1.4. 바인딩
인터셉터를 바인딩에 연결하면 개발자가 바인딩을 사용하는 모든 끝점에 적용되는 인터셉터 집합을 지정할 수 있습니다. 예를 들어 개발자가 원시 XML 바인딩을 사용하는 모든 끝점을 특수 ID 요소를 포함하도록 강제 적용하려면 XML 바인딩에 요소를 추가하는 인터셉터를 연결할 수 있습니다.
59.1.5. Curther
인터셉터를 연결하는 가장 일반적인 위치는 버스입니다. 인터셉터가 버스에 연결되면 인터셉터가 해당 버스에서 관리하는 모든 엔드포인트로 전파됩니다. 인터셉터를 버스에 연결하는 것은 유사한 인터셉터 세트를 공유하는 여러 끝점을 생성하는 애플리케이션에서 유용합니다.
59.1.6. 첨부 지점 결합
엔드 포인트의 인터셉터 체인의 최종 세트는 나열된 객체에 의해 기여하는 인터셉터 체인의 모호성이므로 나열된 오브젝트 중 일부를 단일 끝점의 구성에 결합할 수 있습니다. 예를 들어 애플리케이션이 검증 토큰을 확인하는 인터셉터가 필요한 여러 끝점을 생성하면 해당 인터셉터가 애플리케이션의 버스에 연결됩니다. 이러한 엔드 포인트 중 하나가 유로를화 된 인터셉터가 필요한 경우 변환 인터셉터는 특정 엔드 포인트에 직접 연결됩니다.