est-il possible de configurer une connexion WebServiceTemplate avec un kingle Java? p>
Je cherche un moyen de configurer l'emplacement du keyStore dans la configuration de printemps p>
6 Réponses :
Vous devez installer les certificats dont vous avez besoin dans le fichier KeyStore (probablement le fichier CACERTS) de la JDK utilisée pour exécuter votre serveur d'applications à l'aide de la commande KeyTool.
Voici un exemple de commande: p>
@Taylor L - Merci, bien que je cherche vraiment un moyen de configurer l'emplacement du keyStore au printemps. Je mettrai à jour ma question pour refléter cela.
Jetez un coup d'œil à ceci: static.springsource.org/ Spring-WS / Sites / 1.5 / Référence / HTML / ...
L - Yep, cette page est une bonne référence. Mais comment ferais-je un métisserservietemplate avec un keyStore ...
Je pense que vous pouvez charger de manière programmative une clé KeyStore basée à l'aide d'un keyStore.builder:
Donc, peut-être avoir une classe qui dispose d'un modèle Webservice ou de l'étend, puis définissez le chemin de fichier du magasin de clés dans votre configuration de printemps et faites-la. Un haricot inizialing (@postconstruct au printemps 3?) qui charge ensuite le keyStore. p> ok - Pour l'utiliser avec votre site WebServiceTemplate, je pense qu'il doit être basé sur le porte-clés rappel comme documenté ici: http://static.springsource.org/spring-ws/sites/1.5/Reference/html/security.html#d0e4462 p> ou peut-être en utilisant le printemps org.springframework.ws.transport.http.httpsurlconnectionMessagesgsender que vous pouvez définir KeyStoremanager sur. Ensuite, cela peut être utilisé par votre WebServiceTemplate. P> Un peu comme ceci: p> <bean id="template" class="org.springframework.ws.client.core.WebServiceTemplate">
<property name="messageSender">
<bean class="org.springframework.ws.transport.http.HttpsUrlConnectionMessageSender">
<property name=""></property>
</bean>
</property>
</bean>
Réponse tardive sur ce fil, mais de toute façon: Notez qu'une fois que vous avez votre clé de clés et tout le reste mis en place, vous pouvez être choqué de constater que la plaque WebServiceTemplate ne semble pas prendre en charge les connexions HTTPS! P>
Assurez-vous de définir le message code> Propriété CODE> CODE> ORG.SPRINGFRAMEWORK.WS.TRANSPORTPMESSAGESSENDER code>. La mise en œuvre par défaut WebServicemessagesender code> ne prend pas en charge HTTPS. P>
Je suppose que vous voulez dire que vous souhaitez configurer le keyStore utilisé par JSSE, car c'est le modèle utilisera. JSSE examinera toujours toujours les propriétés du système Javax.Net.SSL.KeyStore / Javax.Ssl.KeyStore / Javax.Net.SSL.KeyStorePassword pour trouver le magasin de clés. Vous pouvez configurer ces propriétés au printemps à l'aide d'un administration initialeBean comme ceci.
Notez que si vous exécutez dans un serveur d'applications, le JSSE peut déjà être configuré avant l'initialisation du ressort. Dans ce cas, vous devez utiliser l'interface de serveur d'applications pour définir la clé KeyStore - en utilisant généralement -d params sur la ligne de commande. P>
Les réponses et les questions que j'ai trouvées dans ce post m'a gardé la chasse à ma queue pendant un moment. À la fin, j'ai eu ce travail pour une application que j'ai déployée sur Weblogic 11g en important le magasin de clés dans le magasin de clés sur mon serveur WebLogic: P>
Puis j'ai changé la configuration du KeyStore Weblogic pour pointer sur ce clavier. Vous pouvez le faire via la console WL: Environnement-> Servers-> Admininserver-> KeyStores Strong>.
Changer les keystores: sélection à "identité personnalisée et confiance personnalisée" forte>, puis remplissez le chemin dans l'identité Je n'ai pas fourni la phrase secrète et je crois que c'est facultatif. P>
Je pose cette réponse après six ans, mais pour être honnête, il n'y a pas un seul poste dans lequel une solution complète et concise est fournie. Tout ce dont vous avez besoin est le printemps-ws-noyau (2.1.4.Release +) et les dépendances de Spring-We-Security (2.2.4.Release +). L'étape suivante consiste à configurer Custock KeyStore et de confiance en tant que haricots, puis à les injecter au modèle de service Web dans la configuration de printemps.
p>
<bean id="myKeyStore" class="org.springframework.ws.soap.security.support.KeyStoreFactoryBean"> <property name="location" value="file:/tmp/config/my-keystore.jks"/> <property name="password" value="password"/> </bean> <bean id="myTrustStore" class="org.springframework.ws.soap.security.support.KeyStoreFactoryBean"> <property name="location" value="file:/tmp/config/my-truststore.jks"/> <property name="password" value="different_password"/> </bean> <bean id="template" class="org.springframework.ws.client.core.WebServiceTemplate"> <property name="messageSender"> <bean class="org.springframework.ws.transport.http.HttpsUrlConnectionMessageSender"> <property name="trustManagers"> <bean class="org.springframework.ws.soap.security.support.TrustManagersFactoryBean"> <property name="keyStore" ref="mytrustStore" /> </bean> </property> <property name="keyManagers"> <bean class="org.springframework.ws.soap.security.support.KeyManagersFactoryBean"> <property name="keyStore" ref="myKeyStore" /> <property name="password" value="password" /> </bean> </property> </bean> </property> </bean>