사용자 정의 SIP TAI 개발
SIP(Session Initiation Protocol) 애플리케이션을 개발할 때 사용자 정의 TAI(Trust Association Interceptor)를 작성할 수 있습니다.
시작하기 전에
이 태스크 정보
TAI는 SIP 서블릿 요청이나 SIP 서블릿 응답을 통해 호출될 수도 있습니다. 사용자 정의 SIP TAI를 구현하려면 고유 Java™ 클래스를 작성해야 합니다.
프로시저
- com.ibm.wsspi.security.tai.extension.BaseTrustAssociationInterceptor 클래스를 확장하고 com.ibm.websphere.security.tai.extension.SIPTrustAssociationInterceptor 인터페이스를 구현하는 Java 클래스를 작성하십시오. 이러한 클래스는 ${wlp.install.dir}/dev/api/ibm/ccom.ibm.websphere.appserver.api.sipServletSecurity.1.0_1.0.10.jar 파일에 정의됩니다.
- 다음 Java 메소드를 선언하십시오.
- public int initialize(Properties properties) throws WebTrustAssociationFailedException;
- 구현이 필요한 자원을 할당할 수 있도록 첫 번째 메시지가 처리되기 전에 이 메소드가 호출됩니다. 예를 들어, 데이터베이스에 대한 연결을 설정할 수 있습니다. WebTrustAssociationFailedException은 ${wlp.install.dir}/lib/com.ibm.websphere.security_1.0.10.jar 파일에 정의됩니다. properties 인수 값은 <trustAssociation> 구성에서 생성됩니다.
- public void cleanup();
- 이 메소드는 TAI가 보유한 자원을 해제할 때 호출됩니다. 예를 들어, 데이터베이스에 대한 연결을 종료할 수 있습니다.
- public boolean isTargetProtocolInterceptor(SipServletMessage sipMsg) throws WebTrustAssociationFailedException;
- 사용자 정의 TAI는 이 메소드를 사용하여 sipMsg 메시지를 처리할 수 있습니다. 메소드가 false를 리턴하면, WebSphere®는 sipMsg의 TAI를 무시합니다.
- public TAIResult negotiateValidateandEstablishProtocolTrust (SipServletRequest req, SipServletResponse resp) throws WebTrustAssociationFailedException;
- 이 메소드는 처리 중인 메시지의 상태 및 인증할
사용자의 사용자 ID 또는 고유 ID를 표시하는
TAIResult를 리턴합니다. 인증에
성공하면 TAIResult에 상태 HttpServletResponse.SC_OK
및 프린시펄이 포함됩니다. 인증에 실패하면 TAIResult에
리턴 코드 HttpServletResponse.SC_UNAUTHORIZED
(401), SC_FORBIDDEN (403)
또는 SC_PROXY_AUTHENTICATION_REQUIRED (407)가 포함됩니다.
이는 컨테이너가 추가 처리할 메시지를 허용할지 여부만
표시합니다. 수신 요청을 인증 확인하려면 TAI 구현이
인증 확인이 포함된 고유 SipServletResponse를
생성하고 전송해야 합니다. 내부 TAI 오류에 대해 예외를 처리할 수 있습니다. 표 1은
negotiateValidateandEstablishProtocolTrust 메소드의 인수 값 및 결과 조치를 설명합니다.이벤트 순서는 다음과 같습니다.
표 1. negotiateValidateandEstablishProtocolTrust 인수 및 조치에 대한 설명. 이 표는 negotiateValidateandEstablishProtocolTrust 인수 및 조치에 대한 설명을 제공합니다.
인수 또는 조치 SIP 요청의 경우 SIP 응답의 경우 req 인수의 값 수신 요청 널 resp 인수의 값 널 수신 응답 올바른 응답 신임을 위한 조치 SC_OK 및 사용자 ID 또는 고유 ID가 포함된 TAIResult.status 리턴 SC_OK 및 사용자 ID 또는 고유 ID가 포함된 TAIResult.status 리턴 잘못된 응답 신임을 위한 조치 4xx 상태의 TAIResult 리턴 4xx 상태의 TAIResult 리턴 - SIP 컨테이너가 각 애플리케이션 배치 디스크립터에 규칙을 사용하여 애플리케이션에 초기 요청을 맵핑합니다. 후속 메시지는 JSR289 메커니즘에 따라 맵핑됩니다.
- 애플리케이션에 보안이 필요한 경우에는 SIP 컨테이너가 메시지에 정의된 TAI 구현을 호출합니다.
- 메시지가 보안을 통과한 경우 컨테이너는 해당 애플리케이션을 호출합니다.
${wlp.install.dir}/lib/com.ibm.ws.security.authentication.tai_1.0.10.jar 파일에 정의된 com.ibm.wsspi.security.tai.TAIResult 클래스에는 TAIResult 작성을 위한 세 개의 정적 메소드가 있습니다. TAIResult create 메소드는 int 유형을 첫 번째 매개변수로 사용합니다. WebSphere Application Server는 결과가 올바른 HTTP 요청 응답 코드일 것으로 예상하며 다음과 같이 해석됩니다.
값이 HttpServletResponse.SC_OK이면 이 응답은 WebSphere에 TAI가 해당 협상을 완료했음을 알립니다. 또한 WebSphere에 TAIResult의 정보를 사용하여 사용자 ID를 작성하도록 지시합니다.
작성된 TAIResults는 표 2에 표시된 의미를 갖습니다.
표 2. TAIResults의 의미. 이 표에는 TAIResults의 의미가 나열됩니다.
TAIResult 설명 public static TAIResult create(int status); WebSphere Application Server에 대한 상태를 표시합니다. 상태는 SC_OK가 될 수 없습니다. ID 정보가 제공되기 때문입니다. public static TAIResult create(int status, String principal); WebSphere Application Server에 대한 상태를 표시하고 이 사용자의 사용자 ID 또는 고유 ID를 제공합니다. WebSphere는 사용자 레지스트리를 조회하여 신임 정보를 작성합니다. public static TAIResult create(int status, String principal, Subject subject); WebSphere Application Server에 대한 상태, 사용자의 사용자 ID 또는 고유 ID 및 사용자 정의 주제를 표시합니다. 주제에 해시 테이블이 있을 경우 프린시펄이 무시됩니다. 주제 컨텐츠는 사용자 주제의 일부가 됩니다. - public String getVersion();
- 이 메소드는 현재 TAI 구현의 버전 번호를 리턴합니다.
- public String getType();
- 이 메소드의 리턴값은 구현 종속적입니다.
- 구현한 후 구현을 컴파일하여 고유 SIP TAI jar 파일을 작성하십시오.
- Liberty에서 TAI 구성 주제에서 설명하는 3 - 4단계에 따라 SIP TAI를 사용하도록 Liberty 서버를 구성하십시오.
상위 주제: Liberty의 사용자 정의 TAI 개발

파일 이름: twlp_custom_sip_tai.html