2009-06-25 6 views
1

Je suis authentification Mis en œuvre par WS-Security sur mon webservice comme décrit à http://static.springframework.org/spring-ws/sites/1.5/reference/html/security.html, comme ceci:Spring WS-Security visible dans WSDL

<bean id="callbackHandler" class="org.springframework.ws.soap.security.wss4j.callback.SimplePasswordValidationCallbackHandler"> 
    <property name="users"> 
     <props> 
      <prop key="bart">arnie</prop> 
     </props> 
    </property> 
</bean> 

<bean id="annotationMapping" class="org.springframework.ws.server.endpoint.mapping.PayloadRootAnnotationMethodEndpointMapping"> 
    <property name="interceptors"> 
     <list> 
      <bean class="org.springframework.ws.soap.security.wss4j.Wss4jSecurityInterceptor"> 
       <property name="validationActions" value="UsernameToken" /> 
       <property name="securementActions" value="NoSecurity" /> 
       <property name="validationCallbackHandler" ref="callbackHandler" /> 
      </bean> ... 

Toutefois, les clients (comme SoapUI) ne savent pas qu'ils devrait utiliser la sécurité, car il n'est pas mentionné dans le WSDL. Comment puis-je l'obtenir? Voilà comment je générer:

<bean id="qwertyService" class="org.springframework.ws.wsdl.wsdl11.DefaultWsdl11Definition"> 
    <property name="schemaCollection" ref="schemaCollection" /> 
    <property name="portTypeName" value="QwertyService" /> 
    <property name="locationUri" value="/QwertyService/" /> 
    <property name="targetNamespace" value="http://www.ead2.nl/demo/wsdl" /> 
</bean> 
+0

Apparemment, j'ai mal compris WS-sécurité et il est impossible de préciser dans le WSDL. N'hésitez pas à contredire cela, cependant. –

Répondre

1

WS-Security par lui-même est pas placé dans le WSDL. WS-Policy s'appuie sur WS-Security, il peut être possible d'utiliser ces standards plus sophistiqués pour l'ajouter au WSDL mais cela ne semble pas être ce que vous voulez.

Dans SOAPUI, les informations de sécurité sont générées en tant que paramètres du projet. Si vous double-cliquez sur le projet, il y a un onglet de sécurité. Des magasins de clés peuvent être ajoutés si vous utilisez un schéma basé sur PKI et vous pouvez définir des configurations entrantes et sortantes. Une paire de configurations peut être appliquée à chaque message en fonction de ce que le message que vous souhaitez sécuriser.

Voir: http://www.soapui.org/userguide/projects/wss.html

+0

C'est en effet ce que j'ai fait. Accepté votre réponse pour l'amour des autres –

1

Il est tout à fait possible de transmettre des informations ws-sécurité dans un wsdl !!!!!

Regardez-ws politique et plus particulièrement ws-SecurityPolicy (les deux vont ensemble)

Cependant, je ne peux pas vous aider specifcally la mise en œuvre.

espérons que cette aide