繁体   English   中英

CXF,WS-Security和Spring:UserToken

[英]CXF, WS-Security and Spring : UserToken

我的websrervice使用身份验证进行工作,但是问题是它是静态的,它是用XML文件编写的,甚至是实现CallbackHandler的类中也是如此。 我想执行我的Web服务,但是要使用用户将在控制台中输入的登录名和密码

这是我编写用户的客户端部分:

<bean id="wss4jOutInterceptor" class="org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor">
    <property name="properties">
        <map>
            <entry key="action" value="UsernameToken Timestamp" />
            **<entry key="user" value="pT64f349"/>**
            <entry key="passwordType" value="PasswordDigest" />
            <entry>
                <key>
                    <value>passwordCallbackRef</value>
                </key>
                <ref bean="passwordCallback" />
            </entry>
        </map>
    </property>
</bean>

这是我输入密码的地方:

public class ClientPasswordCallback implements CallbackHandler{

@Override
public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException {
    WSPasswordCallback callback = (WSPasswordCallback) callbacks[0];
    if(callback.getIdentifier().equals("pT64f349")){
        **callback.setPassword("pass");**
    }
}

}

非常感谢

您可以修改ClientPasswordCallback以从ThreadLocal读取用户输入(请参阅Javadoc示例1示例2 )。

您必须首先将输入填充到ThreadLocal ,然后才能在ClientPasswordCallback读取它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM