扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:闹市孤僧 2007年5月30日
关键字:
现在服务端的Web Service服务已经需要对请求SOAP报文进行用户名/密码的认证了,客户端当然要进行相应的调整,以便在发送SOAP请求报文时添加用户名/密码的信息。
代码清单3 BbtForumServiceUTClient
package com.baobaotao.xfire.wss4j.client;
import java.lang.reflect.Proxy;
import java.net.MalformedURLException;
import java.util.Properties;
import org.apache.ws.security.WSConstants;
import org.apache.ws.security.handler.WSHandlerConstants;
import org.codehaus.xfire.client.Client;
import org.codehaus.xfire.client.XFireProxy;
import org.codehaus.xfire.client.XFireProxyFactory;
import org.codehaus.xfire.security.wss4j.WSS4JOutHandler;
import org.codehaus.xfire.service.Service;
import org.codehaus.xfire.service.binding.ObjectServiceFactory;
import org.codehaus.xfire.util.dom.DOMOutHandler;
import com.baobaotao.xfire.server.BbtForumService;
public class BbtForumServiceUTClient {
private static XFireProxyFactory serviceFactory = new XFireProxyFactory();
public static void main(String[] args) {
Service serviceModel = new ObjectServiceFactory().create(BbtForumService.class);
try {
① Web Service地址,注意服务名为BbtForumServiceUT
String serviceURL = "http://localhost:8080/baobaotao/service/BbtForumServiceUT";
BbtForumService service = (BbtForumService) serviceFactory.create(serviceModel,
serviceURL);
② 获取访问服务的客户端对象
Client client = ((XFireProxy)Proxy.getInvocationHandler(service)).getClient();
client.addOutHandler(new DOMOutHandler());③添加流模型和DOM模型转换的Handler
④以下代码添加一个Handler,通过属性对象的设置往SOAP头中添加用户名/密码的凭证
Properties properties = new Properties();
properties.setProperty(WSHandlerConstants.ACTION, ④-1动作
WSHandlerConstants.USERNAME_TOKEN);
properties.setProperty(WSHandlerConstants.PASSWORD_TYPE, ④-2密码类型
WSConstants.PW_DIGEST);
properties.setProperty(WSHandlerConstants.USER, "client");④-3指定用户
properties.setProperty(WSHandlerConstants.PW_CALLBACK_CLASS,④-4密码回调类
UtPasswordHandler.class.getName());
client.addOutHandler(new WSS4JOutHandler(properties));⑤添加WSS4JOutHandler
int count = service.getRefinedTopicCount(20);
System.out.println("count:"+count);
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
}
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者