首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用WS-Security对SOAP消息进行签名

使用WS-Security对SOAP消息进行签名
EN

Stack Overflow用户
提问于 2019-07-03 12:10:32
回答 1查看 555关注 0票数 1

我需要使用一个SOAP API来请求对策略"SigOnly“进行签名的所有消息。

我已经使用wsimport从WSDL生成了客户端代码,我希望它也能生成用于签名的代码,但事实并非如此。

代码语言:javascript
运行
AI代码解释
复制
MyWebservice service = new MyWebservice();
MyWebservicePortType port = service.getMyWebserviceSOAPportHttp();

// Build request
ObjectFactory objectFactory = new ObjectFactory();
MyRequest request = objectFactory.createMyRequest();

// Call endpoint

port.myRemoteMethod(request);

wsimport工具是否有额外的开关来生成用于签名的代码,或者我是否遗漏了客户端代码中的某些步骤?

EN

回答 1

Stack Overflow用户

发布于 2019-07-03 13:00:21

WS-Security是soap的扩展,所以我不认为wsimport可以在代码生成中处理它。无论如何,您都可以编写处理程序来在soap请求中添加ws-security头。您可以通过以下方式将处理程序添加到您的端口:

代码语言:javascript
运行
AI代码解释
复制
BindingProvider bp = (BindingProvider) port;
List<Handler> handlerChain = new ArrayList<Handler>();
handlerChain.add( new MyHandler() );
Binding binding = bp.getBinding();
binding.setHandlerChain(handlerChain);

MyHandler类必须实现SOAPHandler。这是MyHandler的handleMessage方法的一个实现示例,添加了一个标头

代码语言:javascript
运行
AI代码解释
复制
@Override
public boolean handleMessage(SOAPMessageContext smc) {
    Boolean outboundProperty = (Boolean) smc.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY);

    if (outboundProperty.booleanValue()) {

        SOAPEnvelope envelope = smc.getMessage().getSOAPPart().getEnvelope();
        SOAPHeader header = envelope.addHeader();
        SOAPElement security = header.addChildElement("Security", "wsse",
                "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd");
        SOAPElement usernameToken = security.addChildElement("UsernameToken", "wsse");
        SOAPElement username = usernameToken.addChildElement("Username", "wsse");
        username.addTextNode("MyUser");

    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56869874

复制
相关文章
Python函数参数传递:传值还是传引用
猜猜结果应该是什么? 按照C++语言的思维,如果Python函数参数的传递是传值的话,结果应该是[0, 1],如果是传引用的话,结果应该是[‘T’, ‘Z’, ‘Y’]。 可是实际结果是:[0, 1, 100]。所以,Python函数参数的传递既不是所谓的传值也不是传引用。
卡尔曼和玻尔兹曼谁曼
2019/01/22
3.4K0
Python函数参数传递:传值还是传引用
Python函数签名的参数设计以及=None的重要性
位置参数(Positional Arguments):最常见的参数类型,按照位置传递。
运维开发王义杰
2023/09/19
5650
Python函数签名的参数设计以及=None的重要性
iframe怎么将参数传递给vue 父组件
在子页面的iframe中想将参数传递给Vue父组件,可以使用postMessage()方法将数据发送给父窗口。父组件可以通过监听message事件来接收并处理这些数据。
王小婷
2023/08/10
1.6K0
如何将多个参数传递给 React 中的 onChange?
在 React 中,一些 HTML 元素,比如 input 和 textarea,具有 onChange 事件。onChange 事件是一个非常有用、非常常见的事件,用于捕获输入框中的文本变化。有时候,我们需要将多个参数同时传递给 onChange 事件处理函数,在本文中,我们将介绍如何实现这一目标。
网络技术联盟站
2023/06/07
3.2K0
python中如何定义函数的传入参数是option的_如何将几个参数列表传递给@ click.option…
如果通过使用自定义选项类将列表格式化为python列表的字符串文字,则可以强制单击以获取多个列表参数:
Java架构师必看
2021/08/23
8.3K0
LoadRunner参数传递给参数
需求:使用随机函数时,需要参数化某个参数,并且后面的步骤需要使用这个参数。 方法: 1 lr_save_string 该函数主要是将程序中的常量或变量保存为lr中的参数 2 lr_eval_string 从参数中取得对应的值,并且转换为一个字符串 测试: 在action里写: 1 lr_output_message("*****参数:%s********",lr_save_string(lr_eval_string("{NewParam}"),"name")); 2 lr_output_messag
全栈测试开发日记
2023/02/18
3K0
Python的is None vs ==None
想要弄清楚is None和==None的区别,首先要清楚==和is的区别。==和is的区别如下:
Tyan
2020/05/26
2.3K0
React篇(029)-如何将参数传递给事件处理程序或回调函数?
你可以使用箭头函数来包装事件处理器并传递参数: <button onClick={() => this.handleClick(id)} /> 这相当于调用 .bind: <button onClick={this.handleClick.bind(this, id)} />
齐丶先丶森
2022/05/12
4.1K0
为什么Python中的None is None is None == True
最近在StackOverflow上看到了一个问题,为什么Python中的None is None is None返回True,看到大家的讨论后对Python中的比较运算有了更深的认识。
杜逸先
2018/06/28
2.4K0
为什么Python中的None is None is None == True
Python学习笔记之函数参数传递 传值还是传引用
在学完Python函数那一章节时,很自然的的就会想到Python中函数传参时传值呢?还是传引用?或者都不是? 
Jetpropelledsnake21
2019/02/15
1.9K0
Python函数定义/返回值/参数/传参
1. 函数   函数是对功能的封装   语法:     def 函数名(形参列表):       函数体(代码块, return)     调用:       函数名(实参列表) 2. 返回值   return : 在函数执行的时候. 如果遇到return. 直接返回   1.如果函数什么都不写, 不写return, 没有返回值. 得到的是None   2.在函数中间或者末尾写return, 返回的是None   3.在函数中写return 值. 返回一个值.   4.在函数中可以返回多个返回值, return 值1, 值2, 值3...., 接收的是元组
py3study
2020/01/15
1.2K0
Go 函数可变参数传参
众所周知,Go语言是严格类型语言,而开发的时候又遇到传入参数不定的情况,怎么办?golang 为我们提供了接入多值参数用于解决这个问题。
IT工作者
2022/06/30
1.7K0
Python - 3.8 新特性之仅位置参数 & 仅关键字参数
Python 函数:https://www.cnblogs.com/poloyy/p/15092393.html
小菠萝测试笔记
2021/08/10
9200
Python 函数的传参
函数的传参 必传参数 函数中定义的参数没有默认值,在调用函数时如果不传入则报错 在定义函数的时候,参数后边没有等号与默认值 错误:def add (a=1, b=1) x 在定义函数的时候,没有默认值且必须在函数执行的时候传递进去的参数,且顺序与参数顺序相同,就是必传参数 默认参数(非必传参数) 在定义函数的时候,定义的参数含有默认值,通过赋值语句给他设一个默认的值 如果默认参数在调用函数的时候给予了新的值,函数将优先使用后传入的值进行工作 不确定参数-可变参数 没有固定的参数名和数量(不知道要传的参数名具
Zkeq
2022/05/18
1.2K0
软件测试|Python函数参数之必传参数、默认参数、可变参数、关键字参数的详细使用
在Python中,函数参数是定义在函数头部的变量,用于接收传递给函数的数据。Python函数参数有四种类型:必传参数、默认参数、可变参数和关键字参数。每种类型都有不同的使用方式和适用场景。本文将详细介绍这四种函数参数的使用方法。
霍格沃兹测试开发Muller老师
2023/10/13
6470
Vue 中,如何将函数作为 props 传递给组件
作者:Michael Thiessen 译者:前端小智 来源:medium 点赞再看,养成习惯本文 GitHub https://github.com/qq44924588... 上已经收录,更多往
前端小智@大迁世界
2020/05/18
8.6K0
函数参数的传值和传指针有什么区别?
我们可能听过C语言中的传值和传指针,在其他语言中,也有传引用一说,那么他们到底有什么区别呢?如果你还不能准确地分辨,就该好好了解一下了。
编程珠玑
2019/07/12
3.2K0
函数参数的传值和传指针有什么区别?
go语言中函数参数传值还是传引用的思考
算起来这些年大大小小也用过一些不同编程语言,但平时开发还是以C++为主,得益于C++精确的语义控制,我可以在编写代码的时候精准地控制每一行代码的行为,以达到预期的目的。但是C++的这种强大的语义控制,就带来了极多的概念和极大的学习成本,几乎逼着使用者不得不去了解该语言中的所有细节行为,以防出现意料之外的情况。新时代的语言如golang等,较之C++就好比美图秀秀对比photoshop(绝非贬义),同样都提供了修图的功能,但是前者屏蔽了诸多细节,更傻瓜式且易于使用,一样能达到好的效果;而后者则提供了更多专业的编辑手段,能够满足更精细化更底层的需求,但是随之而来的就是巨大的学习成本。显然两者各有优劣,但是对当今快速发展的互联网来说,以golang为代表的新时代语言更加能够适应敏捷开发的模式,比较起来,C++这些前辈还是“太重”了。
tyriqchen
2019/04/22
4.8K0
Python 函数为什么会默认返回 None?
Python 有一项默认的做法,很多编程语言都没有——它的所有函数都会有一个返回值,不管你有没有写 return 语句。
Python猫
2020/08/18
2.2K0
Python的函数参数
形参(如上面的x, y)仅在定义的函数中有效,函数调用结束后,不能再使用该形参变量。在调用函数时,该函数中的形参才会被分配内存,并赋值;函数调用结束,分配的内存空间也随即释放~
py3study
2020/01/07
1.2K0

相似问题

如何向此异步函数添加超时

234

如何向此限制函数添加新参数?

20

如何向此javascript函数添加过渡

10

如何向此添加参数传递

224

javascript向函数参数添加值

22
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档