vs中service reference访问java cxf 发布的需要usernametoken的服务
来源:互联网 发布:网络直播用户规模 编辑:程序博客网 时间:2024/06/06 01:10
使用vs开发的winform访问java发布的webservice,同时为保证安全需要用户名密码验证
spring中配置如下:
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jaxws="http://cxf.apache.org/jaxws" xsi:schemaLocation="http://www.springframework.org/schema/beans<span style="white-space:pre"></span>http://www.springframework.org/schema/beans/spring-beans.xsd<span style="white-space:pre"></span>http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"> <import resource="classpath:META-INF/cxf/cxf.xml" /> <import resource="classpath:META-INF/cxf/cxf-extension*.xml" /> <import resource="classpath:META-INF/cxf/cxf-servlet.xml" /> <bean id="dailyreportServiceImpl" class="com.jereh.webservice.dailyreport.soap.DailyReportImpl"/><jaxws:endpoint id="dr" implementor="com.test.soap.DailyReportImpl" address="/drService"><!--进入web service之前用户验证的拦截器--> <jaxws:inInterceptors> <bean class="org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor"> <constructor-arg> <map> <!-- 设置加密类型 --> <entry key="action" value="UsernameToken" /> <!-- 设置密码类型为明文 --> <entry key="passwordType" value="PasswordText" /> <!-- <entry key="action" value="UsernameToken Timestamp" /> 设置密码类型为加密<entry key="passwordType" value="PasswordDigest" /> --> <entry key="passwordCallbackClass" value="com.test.interceptor.WsAuthHandler" /> </map> </constructor-arg> </bean> </jaxws:inInterceptors> </jaxws:endpoint></xml>
回调函数WsAuthHandler代码如下:
public class WsAuthHandler implements CallbackHandler { public void handle(Callback[] callbacks) throws IOException, UnsupportedCallbackException { System.out.println("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ COME IN @@@@@@@@@@@@@@"); WSPasswordCallback pc = (WSPasswordCallback) callbacks[0]; if (pc.getIdentifier().equals("myusername")) { pc.setPassword("mypassword"); } } }
vs中app.config配置如下(从网上找的没有研究):
<system.serviceModel> <bindings> <basicHttpBinding> <binding name="DrSoapBinding" maxReceivedMessageSize="106496"/> </basicHttpBinding> </bindings> <client> <endpoint address="http://10.202.10.109:9000/services/drService" binding="basicHttpBinding" bindingConfiguration="DailyreportServiceSoapBinding" contract="ServiceReference1.DrService" name="DRImplPort"> <headers> <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> <wsse:UsernameToken> <wsse:Username>myusername</wsse:Username> <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">mypassword</wsse:Password> </wsse:UsernameToken> </wsse:Security> </headers> </endpoint> </client> </system.serviceModel>
代码中调用,没有特别的:
/*调用WebService*/ ServiceReference1.DrServiceClient sr = new ServiceReference1.DrServiceClient(); ServiceReference1.WSResult wsResult = sr.syncBasicInfo();
0 0
- vs中service reference访问java cxf 发布的需要usernametoken的服务
- CXF学习笔记二:如何在Tomcat中创建、发布和访问基于CXF的服务
- CXF中服务发布与访问方式
- 如何在Tomcat中创建、发布和访问基于CXF的服务
- CXF发布服务的方式
- CXF实现服务的发布
- Java CXF RestFul风格的web service发布与调用
- CXF学习笔记一:如何创建、发布和访问基于CXF的服务
- Java Web Service-CXF -基于Restful的Web服务
- java cxf 同容器的发布和访问
- webservice--CXF发布SOAP协议的服务
- webservice--CXF发布REST的服务
- java cxf 发布和访问
- VS2010发布的wcf服务,浏览器访问没有问题,但是vs添加服务引用出错
- 用CXF将你的Java程序发布成Web Service
- CXF发布web service时,hibernate关系循环的问题
- 在 Spring中集成CXF--->演示webservice服务的发布及调用
- spring中发布基于cxf的webservice
- 用GDB调试程序(二)
- hdu1599+floyd最小环
- hashset原理
- 【js学习1】JavaScript实现&JavaScript插入
- uva 11549
- vs中service reference访问java cxf 发布的需要usernametoken的服务
- ArrayList 源码解析
- HDOJ1753 大浮点数相加
- java垃圾回收机制
- Mysql的查询模型
- MySQL- SHOW TABLE STATUS命令
- 实现Android应用自动检查更新并且下载
- mvc中模型对象中的元数据校验库
- Linux 下 Mysql 5.7 的安装