spring - 带有 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.properties
and raedicomws_client_config.wsdd
,但我无法使其工作。
解决方案
您可以使用 System.setProperty("key","value"); 您将使用 @Value 注释从 .yml/.properties 文件中获取/读取属性的方法。然后可以通过 System.getProperty("key"); 获取设置的数据 Axis 方法上的方法。我为 CXF webservice 做了同样的方法(同样的安全方法),它已经奏效了。