我通过 WSS4JSecurityInterceptor 使用 Spring WS Security。但是,在验证签名时,我需要读取 keystore 密码。
keystore 密码将被加密。您能否在验证签名之前告诉我如何解密?
我的配置如下:
<bean id="wsSecurityInterceptor" class="org.springframework.ws.soap.security.wss4j.Wss4jSecurityInterceptor">
<property name="validationActions" value="Signature"/>
<property name="validationSignatureCrypto">
<bean class="org.springframework.ws.soap.security.wss4j.support.CryptoFactoryBean">
<property name="keyStorePassword" value="123456"/>
<property name="keyStoreLocation" value="classpath:/keystore.jks"/>
</bean>
</property>
</bean>
谢谢
最佳答案
使用 Spring 签名 - Ws WSS4JSecurityInterceptor
生成的Keytool使用:
keytool -genkey -alias signFiles -keypass kpi135 -keystore akulastore.jks -storepass ab987c
为Keytool生成证书:
keytool -certreq -alias signFiles -keystore akulastore.jks -file cert.csr
将Keytool、Certificate放在客户端。
将Keytool放置在服务器端
并进行配置:
Server Side Interceptor
<bean id="wsDigCerSecurityInterceptor"
class="org.springframework.ws.soap.security.wss4j.Wss4jSecurityInterceptor">
<property name="validationActions" value="Signature"/>
<property name="validationSignatureCrypto">
<bean
class="org.springframework.ws.soap.security.wss4j.support.CryptoFactoryBean">
<property name="keyStorePassword" value="ab987c"/>
<property name="keyStoreLocation" value="classpath:/akulastore.jks"/>
</bean>
</property>
</bean>
Client Side Interceptor
<bean id="wsDigCerSecurityInterceptor"
class="org.springframework.ws.soap.security.wss4j.Wss4jSecurityInterceptor">
<property name="securementActions" value="Signature"/>
<property name="securementUsername" value="signFiles"/>
<property name="securementPassword" value="kpi135"/>
<property name="securementSignatureCrypto">
<bean
class="org.springframework.ws.soap.security.wss4j.support.CryptoFactoryBean">
<property name="keyStorePassword" value="ab987c"/>
<property name="keyStoreLocation" value="classpath:/akulastore.jks"/>
</bean>
</property>
</bean>
关于java - 如何在WSS4J Spring Security中使用加密密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13512883/