【发布时间】:2017-03-23 09:42:42
【问题描述】:
我正在使用WSS4JOutInterceptor 和WSS4JInInterceptor 来拦截soap web 服务。在那里我正在使用
密码回调类
示例拦截器
<bean class="org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor" id="inbound-security">
<constructor-arg>
<map>
<entry key="action" value="Signature Encrypt"/>
<entry key="signaturePropFile" value="serviceKeystore.properties"/>
<entry key="decryptionPropFile" value="clientKeystore.properties"/>
<entry key="passwordCallbackClass" value="com.service.toolprovider.ToolProviderCallbackHandler"/>
</map>
</constructor-arg>
</bean>
在我的密码回调类中,我需要注入另一个类来获取密码。
@Component
public class ToolProviderCallbackHandler implements CallbackHandler {
@Autowired
private IAuthenticationConfiguration configuration;
@Override
public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
for (Callback callback : callbacks) {
WSPasswordCallback wsPasswordCallback = (WSPasswordCallback) callback;
if (wsPasswordCallback.getUsage() == WSPasswordCallback.SIGNATURE || wsPasswordCallback.getUsage() == WSPasswordCallback.DECRYPT) {
if (wsPasswordCallback.getIdentifier().equals("client alias")) {
wsPasswordCallback.setPassword("password");
}
}
}
}
}
但是这里自动接线不起作用。配置属性始终为空。
【问题讨论】:
-
我也有同样的问题