클라이언트 애플리케이션의 JAAS 주제에서 토큰 검색

이 태스크 정보

WebSphere® Application Server 버전 6에서는 보안 핸들러가 보안 토큰을 전파하는 역할을 담당합니다. 이러한 보안 토큰은 SOAP(Simple Object Access Protocol) 보안 헤더에 임베드되어 있으며 다운스트림 서버에 전달됩니다. 보안 토큰은 com.ibm.wsspi.wssecurity.auth.token.Token 인터페이스의 구현 클래스에 캡슐화됩니다. 서버 애플리케이션 또는 클라이언트 애플리케이션에서 보안 토큰 데이터를 검색할 수 있습니다.

클라이언트 애플리케이션의 경우 애플리케이션이 요청 생성기 및 응답 이용자 역할을 하며 J2EE(Java™ 2 Platform, Enterprise Edition) 클라이언트 애플리케이션으로 실행됩니다. 웹 서비스 보안의 이용자 컴포넌트는 현재 웹 서비스 호출에 필요한 MessageContext 오브젝트의 특성 중 하나에 수신한 보안 토큰을 저장합니다. 해당 웹 서비스 호출의 javax.xml.rpc.Stub 인터페이스를 통해 토큰 오브젝트 세트를 검색할 수 있습니다. SOAP 보안 헤더에 여러 보안 토큰이 포함된 경우에 대비하여 검색할 보안 토큰 및 해당 토큰 ID를 알아야 합니다. 클라이언트 애플리케이션에서 보안 토큰 데이터를 검색하려면 다음 단계를 완료하십시오.

프로시저

  1. com.ibm.wsspi.wssecurity.token.tokenPropergation 키 문자열을 사용하여 javax.xml.rpc.Stub 인터페이스에서 특성 값을 통해 토큰의 해시 테이블을 얻으십시오. 다음 예제에는 해시 테이블을 얻는 방법이 표시되어 있습니다.
    java.util.Hashtable t;
    javax.xml.rpc.Service serv = …;
    MyWSPortType pt = (MyWSPortType)serv.getPort(MyWSPortType.class);
    t = (Hashtable)((javax.xml.rpc.Stub)pt)._getProperty( 
    com.ibm.wsspi.wssecurity.Constants.WSSECURITY_TOKEN_PROPERGATION);
  2. 해시 테이블에서 대상 토큰 오브젝트를 검색하십시오. 해시 테이블의 각 토큰 오브젝트에는 토큰 ID가 키로 설정되어 있습니다. 보안 토큰을 검색하려면 보안 토큰 ID를 미리 알아야 합니다. 다음 예제에는 특정 토큰 ID 값을 가진 보안 헤더에서 사용자 이름 토큰을 검색하는 방법이 표시되어 있습니다.
    com.ibm.wsspi.wssecurity.auth.token.UsernameToken unt;
    if (t != null) {
      unt = (com.ibm.wsspi.wssecuty.auth.token.UsernameToken)t.get(“…”);
    }

결과

이 단계를 완료한 후 클라이언트 애플리케이션의 JAAS 주제에서 보안 토큰을 검색했습니다.

피드백