Domanda

Ho due endpoint usando le annotazioni. Voglio applicare diversi intercettori a ciascuno di essi. (uno è un intercettore sicuro e l'altro non è sicuro) C'è un modo per farlo usando PayloadRootAnnotationMethodEndpointMapping ? Qualcuno ha un'idea?

Secondo applicationContext-ws.xml dell'esempio della compagnia aerea fornito con Spring:

  

La mappa delle mappature degli endpoint da a   richiesta a un endpoint. Perché noi   voglio solo l'intercettazione della sicurezza   si verificano per il    GetFrequentFlyerMileageEndpoint , noi   definire due mappature: una con il   securityInterceptor e uno generale   senza di essa.

Quindi l'unico modo per farlo è avere due diversi mapping: org.springframework.ws.server.endpoint.mapping.PayloadRootAnnotationMethodEndpointMapping e org.springframework.ws.server. endpoint.mapping.PayloadRootQNameEndpointMapping per quelli sicuri?

È stato utile?

Soluzione

Quando si imposta un intercettore impostato su EndpointMapping , tali intercettori si applicheranno a tutti gli endpoint mappati da tale EndpointMapping . Quindi, se si desidera che alcuni endpoint ottengano un diverso set di intercettori rispetto ad altri endpoint, quindi sì, sono necessari due bean EndpointMapping diversi, uno con l'interceptor sicuro e il mapping agli endpoint sicuri e un altro senza intercettori e mappatura agli endpoint non garantiti.

Quali implementazioni di EndpointMapping utilizzate dipendono dall'applicazione e dal tipo di endpoint che utilizza.

Altri suggerimenti

Puoi anche usare l'elemento sws: interceptors nel tuo contesto applicativo per specificare particolari intercettori con particolari endpoint, filtrati dai loro attributi soapAction o payloadRoot.

Da: http://static.springsource.org /spring-ws/site/reference/html/server.html#server-endpoint-interceptor

<sws:interceptors>
  <bean class="samples.MyGlobalInterceptor"/>
  <sws:payloadRoot namespaceUri="http://www.example.com">
    <bean class="samples.MyPayloadRootInterceptor"/>
  </sws:payloadRoot>
  <sws:soapAction value="http://www.example.com/SoapAction">
    <bean class="samples.MySoapActionInterceptor1"/>
    <ref bean="mySoapActionInterceptor2"/>
  </sws:soapAction>
</sws:interceptors>

<bean id="mySoapActionInterceptor2" class="samples.MySoapActionInterceptor2"/>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top