首页 > 解决方案 > 带有 CallbackHandler 的属性中的 AXIS 和 Spring 密码

问题描述

我对 Apache Axis 和 Spring 有疑问。我在 WS-Security 中将此类作为 CallBackHandler 用于设置密码:

public class PasswordCallbackHandler implements CallbackHandler {
    @Override
    public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
        for (int i = 0; i < callbacks.length; i++) {
            WSPasswordCallback pwcb = (WSPasswordCallback)callbacks[i];
            pwcb.setPassword("mysecretpassword");
        }
    }
}

我正在尝试在 .properties 中设置密码。我不能使用类路径资源,我的属性在类路径之外。这个类(PasswordCallbackHandler)在我的 Spring 上下文之外,所以我不能使用@Value标签。

将此密码放入属性文件的最佳方法是什么?我尝试使用raedicomws.crypto.propertiesand raedicomws_client_config.wsdd,但我无法使其工作。

标签: springapacheaxis2ws-security

解决方案


您可以使用 System.setProperty("key","value"); 您将使用 @Value 注释从 .yml/.properties 文件中获取/读取属性的方法。然后可以通过 System.getProperty("key"); 获取设置的数据 Axis 方法上的方法。我为 CXF webservice 做了同样的方法(同样的安全方法),它已经奏效了。


推荐阅读