java - 如何在WSS4J Spring Security中使用加密密码

标签 java encryption spring-ws

我通过 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/

相关文章:

java - Java 中带有三位数字 key 的凯撒密码

java - Spring Boot中无法进行编辑操作

java - 尝试在 IntelliJ IDEA 中创建 jar 可执行文件

java - Canvas.drawRect() 不绘制任何东西

java - Spring 将文件映射到 Url/URI

java - Spring: WebServiceTransportException: Not Found [404] 对于非常简单的 WS 客户端

java - 使用 Spring WS 将故障从皂体移至皂头

java - Glassfish 4.0 与 Java 9

iOS - 使用 TLS-PSK 连接到套接字

ajax - Wordpress 单页 SSL