Java 调用Web service 加入认证头(soapenv:Header)
前言
有时候调用web service 会出现
Message does not conform to configured policy [ AuthenticationTokenPolicy(S) ]: No Security Header found
这种错误。
以在 soapui 调用的结果来看, 会出现例如以下的返回
aaarticlea/png;base64,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" alt="" />
出现这种错误的原因 是webservice 的服务端须要提供 soap 认证的表头。
举例来说。 可能须要加上例如以下的认证头:
<soapenv:Header>
<wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" soapenv:mustUnderstand="1">
<wsse:UsernameToken>
<wsse:Username>UserName</wsse:Username>
<wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">Password</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
(这个细部的格式和服务端的要求有关, 详细的username和pass也是服务端提供的)
在sopaui 调用的时候, 加上相似, 就能呼叫成功了。
aaarticlea/png;base64,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" alt="" />
在soapui 调用, 能够用以上方式来做。
在把wsdl 转为java 后。 又该怎样加上认证的头信息呢?
cxf 加上认证头
(以上的认证头。 比較接近cxf 的调用方式。
)
假设使用的是cxf生产的客户端的代码。
(怎样生成,參考 CXF 生成Web Service Client(将WSDl 转化成 Java代码))
在 _Client 调用的时候加上 例如以下代码:(在方法调用的代码之前)
Map<String, Object> props = new HashMap<String, Object>();
props.put(WSHandlerConstants.ACTION, WSHandlerConstants.USERNAME_TOKEN);
props.put(WSHandlerConstants.PASSWORD_TYPE,WSConstants.PW_TEXT);
props.put(WSHandlerConstants.USER, "UserName");
props.put(WSHandlerConstants.PW_CALLBACK_CLASS, PasswordHandler.class.getName());
WSS4JOutInterceptor wssOut = new WSS4JOutInterceptor(props);
Client client = ClientProxy.getClient(port);
client.getOutInterceptors().add(wssOut);
在client 的java 文件里, 新增下面内部类
public static class PasswordHandler implements CallbackHandler
{
public void handle(javax.security.auth.callback.Callback[] callbacks) {
for (int i = 0; i < callbacks.length; i++) {
WSPasswordCallback pc = (WSPasswordCallback)callbacks[i];
pc.setPassword("password");
}
} }
Axis2 加上认证头
针对以上的认证头在axis2 产生的java 文件里怎样加入呢(Axis2自己主动产生的java 文件并不会自己主动产生main的測试文件, 须要自己写。 XXXXProxy.java 这是供调用的类文件。 只是这些和加入认证头关系不大)
axis2会产生一个 XXXXPortBindingStub.java 的文件。
这里面的内容就是实际的方法体。
找到我们须要调用的那个方法体:
在方法调用之前。加入下面代码:
//Begin add for Header
String AUTH_PREFIX = "wsse";
String AUTH_NS = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd";
try{
SOAPElement wsSecHeaderElm = soapFactory.createElement("Security", AUTH_PREFIX, AUTH_NS);
SOAPElement userNameTokenElm = soapFactory.createElement("UsernameToken",AUTH_PREFIX, AUTH_NS);
SOAPElement userNameElm = soapFactory.createElement("Username",AUTH_PREFIX, AUTH_NS);
SOAPElement passwdElm = soapFactory.createElement("Password",AUTH_PREFIX, AUTH_NS);
passwdElm.setAttribute("Type", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText"); userNameElm.addTextNode("vend_bmc01");
passwdElm.addTextNode("mediatek"); userNameTokenElm.addChildElement(userNameElm);
userNameTokenElm.addChildElement(passwdElm);
wsSecHeaderElm.addChildElement(userNameTokenElm);
SOAPHeaderElement soapHeaderElement = new SOAPHeaderElement(wsSecHeaderElm);
soapHeaderElement.setMustUnderstand(true);
_call.addHeader(soapHeaderElement);
}catch(Exception e)
{
e.printStackTrace();
}
//End add for Header ===》call method
java.lang.Object _resp = _call.invoke(XXXX);
原理非常easy。 加上相似xml 的头, _call_addHeader
加上之后。再触发方法 _call.invoke
Java 调用Web service 加入认证头(soapenv:Header)的更多相关文章
- (转)JAVA 调用Web Service的三种方法
1.使用HttpClient用到的jar文件:commons-httpclient-3.1.jar方法:预先定义好Soap请求数据,可以借助于XMLSpy Professional软件来做这一步生成. ...
- (转)Java实现Web Service过程中处理SOAP Header的问题
网上有篇文章,大致这么说的(如下文),最后我采用的wsimport -XadditionalHeaders的方式. StrikeIron offers two authentication meth ...
- java axis web service
编写 java调用web service的客户端比较简单,其中webservice为上一篇gsoap创建的server. package clientTest; import java.rmi.Rem ...
- ORACLE存储过程调用Web Service
1. 概述 最近在ESB项目中,客户在各个系统之间的服务调用大多都是在oracle存储过程中进行的,本文就oracle存储过程调用web service来进行说明.其他主流数据库,比如mysql和sq ...
- php5调用web service
工作中需要用php调用web service接口,对php不熟,上网搜搜,发现关于用php调用web service的文章也不多,不少还是php4里用nusoap这个模块调用的方法,其实php5里已经 ...
- php5调用web service (笔者测试成功)
转自:http://www.cnblogs.com/smallmuda/archive/2010/10/12/1848700.html 感谢作者分享 工作中需要用php调用web service接口, ...
- 通过ksoap2-android来调用Web Service操作的实例
import java.io.IOException; import org.ksoap2.SoapEnvelope;import org.ksoap2.serialization.SoapObjec ...
- 使用Android应用调用Web Service
Java本身提供了丰富的Web Service支持,比如Sun公司指定的JAX-WS 2规范,还有Apache开源组织所提供的Axis1.Axis2.CXF等,这些技术不仅可以用于非常方便地对外提 ...
- C#使用SOAP调用Web Service
程序代码 using System;using System.IO;using System.Net;using System.Text; namespace ConsoleApplication1{ ...
随机推荐
- 百度乐播音乐真实地址查找api接口
1.百度乐播官网:http://lebo.baidu.com: 随便点击进去一个音乐界面,如:http://lebo.baidu.com/album/9036366 2.chrome浏览器右击'检查' ...
- bzoj 1492
这道题真好... 首先,感觉像DP,但是如果按照原题意,有无数个状态,每个状态又有无数个转移. 然后思考,我们每次买一部分和卖一部分的原因是什么,如果没有那个比例(就是rate=1恒成立),那么很容易 ...
- PowerDesigner导出图片
但是通过上面导出的图片会比较模糊不清晰,但是可以通过这样解决: 1.放大设计,然后全选复制全部 2.打开画图工具 3.粘贴到画图工具
- JDK篇
卸载系统自带的jdk 使用以下命令查看是否已经安装了jdk rpm -qa|grep java rpm -qa|grep jdk 如果已经安装了可能会得到下面的结果: java-1.4.2-gcj ...
- 知识共享 - creative commons
Creative Commons,简称CC,中国大陆正式名称为知识共享,台湾正式名称为创用CC. 是一个非营利组织,也是一种创作的授权方式. 此组织的主要宗旨是增加创意作品的流通可及性,作为其他人据以 ...
- 原生js实现图片预览并上传
最近主导的PC客户端网站重构工程告一段落,下一阶段开始给公司APP开发H5页面,技术栈是react.最近碰到一个需求:需要在H5页面上添加身份证照片,预览并上传.因为要兼容安卓4.4以下版本的手机,所 ...
- C#程序集系列11,全局程序集缓存
全局程序集缓存(GAC:Global Assembly Cache)用来存放可能被多次使用的强名称程序集.当主程序需要加载程序集的时候,优先选择到全局程序集缓存中去找寻需要的程序集. 为什么需要全局程 ...
- 为iOS应用制作一个二维码
第一步:找到你发布的ios应用的下载链接: 第二步:使用二维码转换器,将下载链接转换成 二维码.http://my.qzone.qq.com/app/100699951.html?via=appcen ...
- 嵌入式linux GUI--DirectFB + GTK至尊秘笈
前言 数年前,曾经开发过一个嵌入式的产品,如今市场依然存在,但由于电子产品的升级换代很快,许多元器件都采购不到了,为了延续产品的生命周期,计划在linux平台上开发新的版本.而在linux上的GUI上 ...
- 10 Big Data Possibilities for 2017 Based on Oracle's Predictions
2017 will see a host of informed predictions, lower costs, and even business-centric gains, courtesy ...