11
votes

Utilisation de WebServiceTemplate avec un magasin de clés

est-il possible de configurer une connexion WebServiceTemplate avec un kingle Java?

éditer
Je cherche un moyen de configurer l'emplacement du keyStore dans la configuration de printemps


0 commentaires

6 Réponses :


0
votes

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: xxx

EDIT : Sur la base de la question mise à jour, on dirait que cela peut être ce que vous recherchez: http://static.springsource.org/spring-ws/sites/1.5/reference/html/security.html


3 commentaires

@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 ...



1
votes

Je pense que vous pouvez charger de manière programmative une clé KeyStore basée à l'aide d'un keyStore.builder:

http: // java.sun.com/j2se/1.5.0/docs/aplia/java/security/keystore.builder.html#newinstance%28java.lang.string,%20java.security.frovider ,%20java.io.file ,%20java .security.keystore.protectionParameter% 29 p>

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> xxx pré>

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>


0 commentaires

1
votes

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!

Assurez-vous de définir le message Propriété ORG.SPRINGFRAMEWORK.WS.TRANSPORTPMESSAGESSENDER . La mise en œuvre par défaut WebServicemessagesender ne prend pas en charge HTTPS.


0 commentaires

1
votes

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. xxx


0 commentaires

2
votes

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:

C: \ BEA \ JROCKIT_160_14_R27.6.5-32 \ JRE \ BIN> Tool-Tool -importkeystore -SrCeyStore \ Espace de travail \ MyProject \ Webservice.KeyStore

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 . Changer les keystores: sélection à "identité personnalisée et confiance personnalisée" , puis remplissez le chemin dans l'identité identité (entrant) et fiduciaire ( Sorties) Sections à votre emplacement de votre sitet. Sur Windows XP, le mien était dans \ documents un paramètre \ mon identifiant \ .keystore.

Je n'ai pas fourni la phrase secrète et je crois que c'est facultatif.


0 commentaires

12
votes

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>


0 commentaires