我已经创建了Web服务并试图添加它的安全性部分。我正在使用RAD并想知道如何在webservices.xml扩展选项卡中添加用户名令牌?
任何帮助表示赞赏。
谢谢。
@parthkansara添加了一条评论,询问如何为JAX-WS应用程序执行此操作。我正在回答该评论作为该主题的补充答案,因为在评论字段中没有足够的字符可以这样做。
您可以在RAD中为JAX-WS应用程序添加WS-Security Policy和Bindings。但是,它不是最直接的事情。此外,如果您将策略/绑定应用于RAD并进行部署,然后使用管理控制台修改它们,您对管理控制台所做的操作将不会生效。这是一个非常令人困惑的行为,在我写一篇关于它的故障排除文章之前,我经常会遇到麻烦的报告。如果您要使用RAD部署应用程序,我建议您使用管理控制台应用策略/绑定,而不是RAD。如果您这样做,您的保单/绑定将在整个重新部署期间保留;如果您卸载应用程序,它们只会消失。
我只建议您使用RAD应用策略/绑定,如果您打算导出您的耳朵,然后使用管理控制台安装耳朵,而不是直接使用RAD部署。
因此,我将向您提供使用管理控制台在RAD部署的应用程序上添加UsernameToken的说明。
您需要做的第一件事是确保您的RAD使用服务器上的资源,而不是工作区:
创建一个jax-ws自定义策略集:
编辑自定义策略集
配置客户端以使用UntPolicy策略集。
为客户端创建自定义绑定。
编辑客户端的自定义绑定。
重启应用程序
测试应用程序。
要查看跟踪中的入站/出站SOAP消息,请执行以下操作
来源:这些步骤来自WebSphere知识中心的此任务:
在WebSphere WS-Security故障排除指南中,有一个页面包含可用的jax-ws策略/绑定示例的列表:
WebSphere WS-Security Examples : JAX-WS Policy/Binding Configuration and Code Samples
该页面上有很多内容,包括但不限于:
我一直这样做,但我使用向导,因为手动执行它容易出错。
您没有说是否要向客户端,提供商或两者添加约束。我会给你两个指示。我在我的示例中使用HelloService和HelloSvcClient:
将独立的UsernameToken添加到客户端:
1)切换到J2EE透视图
a)Window-> Open Perspective-> Other-> Java EE
b)好的
2)选择左侧的“服务”选项卡
3)展开JAX-RPC->客户端
4)右键单击HelloSvcClient:service / HelloService - > Secure Web Service Client-> Add Stand Alone Security Token
5)接下来
6)用户名和密码
7)完成
将独立的UsernameToken添加到提供程序:
1)选择左侧的“服务”选项卡
2)展开JAX-RPC
3)右键单击HelloSvc:HelloService-> Secure Web Service-> Add Stand Alone Security Token
4)WS-Security添加服务端安全令牌
5)完成
如有必要,从服务配置中删除呼叫者部分
如果服务器上未启用安全性,则您的服务将无法进行身份验证。在这种情况下,在服务使用者配置中,您必须删除令牌的调用者部分,以便在发出请求时不会出错。如果您确实在服务器上启用了安全性,请跳过此步骤。
1)选择左侧的“服务”选项卡
2)展开JAX-RPC
3)右键单击HelloSvc:HelloService-> Show-> Web Service Extensions Editor
4)扩展选项卡
重新发布应用程序
1)转到“服务器”窗格
2)右键单击所需的服务器 - >发布