我创建了Web服务并尝试添加安全性部分。我正在使用RAD并想知道如何在webservices.xml扩展选项卡中添加用户名令牌?
感谢任何帮助。
感谢。
答案 0 :(得分:1)
@parthkansara添加了一条评论,询问如何针对JAX-WS应用程序执行此操作。我正在回答该评论,作为对此主题的另一种回答,因为在评论字段中没有足够的字符可以这样做。
您可以在RAD中为JAX-WS应用程序添加WS-Security Policy和Bindings。但是,这不是最直接的事情。另外,如果您通过RAD应用策略/绑定并进行部署,然后使用管理控制台对其进行修改,那么您使用管理控制台所做的操作将不会生效。这是非常令人困惑的行为,在我撰写有关此问题的疑难解答文章之前,我经常会得到一些故障报告。如果要使用RAD部署应用程序,建议您使用管理控制台(而不是RAD)应用策略/绑定。如果这样做,您的策略/绑定将在整个重新部署过程中保持不变;仅当您卸载应用后,它们才会消失。
如果您要导出耳朵,我只建议您使用RAD应用策略/绑定,然后使用管理控制台安装耳朵,而不是直接通过RAD进行部署。
因此,我将向您提供使用管理控制台在RAD部署的应用程序上添加UsernameToken的说明。
您需要做的第一件事是确保RAD使用服务器上的资源,而不是工作区上的资源:
在右侧,展开“ WebSphere Application Server的发布设置”
更改为“使用服务器上的资源运行服务器”后,必须先卸载,然后重新安装该应用程序。仅进行重新部署是不够的。请执行以下操作:
创建jax-ws自定义策略集:
编辑自定义策略集
配置客户端以使用UntPolicy策略集。
为客户端创建自定义绑定。
编辑客户端的自定义绑定。
重新启动应用程序
测试应用程序。
要在跟踪中查看入站/出站SOAP消息,请执行以下操作
添加以下跟踪规范:
重新启动应用程序服务器。
在(profileRoot)/ logs /(serverName)/trace.log中的跟踪中搜索以下字符串:
来源:这些步骤是从WebSphere知识中心的此任务执行的:
在WebSphere WS-Security故障排除指南中,有一个页面包含可用的jax-ws策略/绑定示例的列表:
WebSphere WS-Security Examples : JAX-WS Policy/Binding Configuration and Code Samples
该页面上有很多内容,包括但不限于:
答案 1 :(得分:0)
我一直这样做,但是我使用向导,因为手动操作很容易出错。
您没有说是否要向客户端,提供商或两者添加约束。我会给你两个指示。我在我的例子中使用HelloService和HelloSvcClient:
将独立的UsernameToken添加到客户端:
1)切换到J2EE Perspective
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
令牌类型:用户名令牌
回调处理程序:(选择一个)
** NonPromptCallbackHandler(默认 - 硬编码用户名/密码)
** GUIPromptCallbackHandler(提示用户输入用户名/密码 - 无法在应用服务器上运行)
** StdinPromptCallbackHandler(从stdin获取uid / pw - 无法在应用服务器上运行)
5)下一步
6)用户名和密码
用户ID :(用户ID)
密码:(密码)
7)完成
将独立的UsernameToken添加到提供商:
1)选择左侧的“服务”选项卡
2)展开JAX-RPC
3)右键单击HelloSvc:HelloService-> Secure Web Service->添加独立安全令牌
4)WS-Security添加服务端安全性令牌
令牌类型:选择用户名令牌
JAAS配置名称:system.wssecurity.UsernameToken
5)完成
必要时从服务配置中删除来电者部分
如果您的服务器未启用安全性,则您的服务将无法进行身份验证。在这种情况下,在服务使用者配置中,您必须删除令牌的调用者部分,以便在发出请求时不会出错。如果您确实在服务器上启用了安全性,请跳过此步骤。
1)选择左侧的“服务”选项卡
2)展开JAX-RPC
3)右键单击HelloSvc:HelloService-> Show-> Web服务扩展编辑器
4)扩展程序标签
请求消费者服务配置详细信息 - >来电者部分
如果那里只有一个,请将其删除
如果那里有多个,请找到“本地名称”条目对应于您添加并删除它的令牌类型的那个(例如,http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#UsernameToken表示UsernameToken)
< / LI>重新发布应用
1)转到“服务器”窗格
2)右键单击所需的服务器 - >发布