2010-09-20 7 views
3

J'essaye d'écrire un service web "Secure Hello World" en utilisant Apache CXF aussi; Je dois noter que je suis un peu nouveau sur Java et WS-*. Fondamentalement, ce que je veux faire est un service web hello-world avec des messages de savon à et à partir de ce service Web signé et crypté à l'aide de certificat (s) x.509. J'ai déjà lu the tutorial on Apache CXF site about WS-Security mais; Je veux utiliser WS-SecurityPolicy au lieu d'Interceptors.Signer et crypter des messages SOAP avec Apache CXF

Quelqu'un peut-il me diriger dans la bonne direction?

Répondre

0

Étant donné que les services Web fonctionnent sur HTTP, vous pouvez les sécuriser en utilisant le protocole HTTPS.

Voici une ressource qui peut vous aider à point dans la bonne direction: Using JAX-WS-Based Web Services with SSL

Bien que cette ressource est pour JAX-WS, vous devriez trouver que beaucoup de celui-ci sera reporté à Apache CXF.

Cheers.

4

est ici un blog avec des détails sur l'utilisation d'Apache CXF: Adding X.509 security headers to Apache CXF SOAP calls (WS-SecurityPolicy method)

Il y a aussi un tutorial avec le code source configuré pour utiliser la méthode WS-SecurityPolicy.

EDIT: lien rompu fixe, lien ajouté au tutoriel.

Il existe maintenant un bon aperçu des différents paramètres de WS-SecurityPolicy sur le CXF site, et il fait référence au lien ci-dessus. En un mot (dans le cas où les liens sont à nouveau coupés), WS-SecurityPolicy est configuré de manière similaire au CXF interceptor method décrit sur le wiki CXF à l'exception de quelques changements dans le fichier cxf.xml et le fichier cxf-servlet.xml :

cxf.xml

<jaxws:client name="{http://myport" createdFromAPI="true"> 
      <!-- You will need to add the corresponding values to a properties file --> 
      <jaxws:properties> 
       <entry key="ws-security.callback-handler" value="client.ClientKeystorePasswordCallback"/>   
       <entry key="ws-security.encryption.properties" value=keystore.properties"/> 
       <entry key="ws-security.signature.properties" value="keystore.properties"/> 
       <entry key="ws-security.encryption.username" value="myservicekey"/> 
      </jaxws:properties> 

CxF-servlet.xml

<jaxws:properties> 
      <entry key="ws-security.callback-handler"> 
       <ref bean="myPasswordCallback"/> 
      </entry> 
      <entry key="ws-security.encryption.properties" value="serviceKeystore.properties"/> 
      <entry key="ws-security.signature.properties" value="serviceKeystore.properties"/> 
      <entry key="ws-security.encryption.username" value="useReqSigCert"/> 
     </jaxws:properties> 
+0

Malheureusement, le lien fourni ne travaille pas plus, ce qui rend cette réponse pas utile. – LdSe

+0

Apparemment, ils ont fait quelques changements sur le site JRoller, donc l'URL a changé. J'ai trouvé le document original et, ce faisant, j'ai remarqué qu'ils incluaient même plus de doc sur le site d'Apache CXF, et incluaient un lien vers le tutoriel que j'avais mentionné ci-dessus. – michaelok

Questions connexes