Definição de Escopo de Conversação Segura de Serviços da Web
A Conversação Segura dos Serviços da Web suporta dois mecanismos de definição de escopo: o padrão e o nível de serviço do cliente do JAX-WS (Java™ API for XML Web Services).
Revise as informações a seguir sobre os mecanismos de definição de escopo para garantir a definição de escopo adequada da conversação segura e o conjunto de política para o WebSphere Application Server.
Default
O escopo padrão é baseado em um cluster, um aplicativo, um módulo e um terminal em serviço de destino. Para um cliente executando em um ambiente do cliente thin, ele é considerado um único aplicativo, cluster e módulo.
Neste modelo de definição de escopo, todas as instâncias do cliente JAX-WS em um determinado aplicativo, cluster e módulo para o mesmo terminal em serviço de destino compartilham a mesma conversação segura. Por exemplo, na figura a seguir, as duas instâncias de cliente (Cliente 1 e Cliente 2) estão no mesmo módulo. O Cliente 1 e o Cliente 2 compartilham a mesma conversação segura com o Serviço 1. As outras duas instâncias de cliente (Cliente 3 e Cliente 4), que estão em em um módulo diferente do dos Clientes 1 e 2, compartilham uma conversação segura entre si, mas não com os Clientes 1 e 2.
Nível de Serviço do Cliente JAX-WS
O escopo no nível de cliente JAX-WS é ativado especificando-se uma propriedade na configuração de ligação do gerador de token do SCT (Secure Conversation Token) no pedido de aplicativo cliente (saída do aplicativo). A ligação está localizada no META-INF do aplicativo implementado.
$PROFILE_DIR/config/cells/<cellname>/WSSampleClientBeta.ear/deployments/WSSampleClientBeta
/META-INF/SecureConversation123binding/PolicyTypes/WSSecurity/bindings.xml.
Um exemplo da configuração é o seguinte:
<tokenGenerator name="gen_enctgen"
classname="com.ibm.ws.wssecurity.wssapi.token.impl.CommonTokenGenerator">
<valueType localName="http://schemas.xmlsoap.org/ws/2005/02/sc/sct" uri="" />
<callbackHandler classname="com.ibm.ws.wssecurity.impl.auth.callback.WSTrustCallbackHandler">
<properties name="com.ibm.ws.wssecurity.sc.SCTScope" value="SERVICE_SCOPE"/>
</callbackHandler>
<properties name="com.ibm.ws.wssecurity.sc.dkt.ServiceLabel" value="WSC"/>
<properties name="com.ibm.ws.wssecurity.sc.dkt.ClientLabel" value="WSC"/>
<jAASConfig configName="system.wss.generate.sct"/>
</tokenGenerator>
O código de exemplo a seguir demonstra o comportamento depois da ativação da propriedade na configuração de ligação do gerador de token do SCT no pedido de aplicativo cliente (ligação do aplicativo). Neste modo, a Conversação Segura de Serviços da Web tem o escopo definido na instância de serviço do cliente JAX-WS.
QName serviceQname = new QName("http://ws.apache.org/axis2", "EchoService");
QName portQname = new QName("http://ws.apache.org/axis2", "EchoServicePort");
String endpointUrl = "http://myhost/......";
Service svc1 = Service.create(serviceQname);
svc1.addPort(portQname, null, endpointUrl);
Dispatch<Source> dispatch = svc1.createDispatch(portQname, Source.class, null);
……
……
Service svc2 = Service.create(serviceQname);
svc2.addPort(portQname, null, endpointUrl);
Dispatch<Source> dispatch = svc2.createDispatch(portQname, Source.class, null);
em que svc1 e svc2 estão em duas conversações seguras diferentes com o terminal em serviço de destino.
Você pode alterar o escopo usando o console administrativo ou o script para incluir uma propriedade.