如果服务端使用了ws-security进行用户验证时,客户端访问时需要在报文头部添加用户名和密码,用户令牌验证只允许在报文头部添加验证。采用axis2生成java代码,以下为实现代码:
//stub为生成的代码
stub._setProperty(Stub.ENDPOINT_ADDRESS_PROPERTY,"http:.....?wsdl");
//安全头报文生成
SOAPHeaderElement sl = setSoapHeader();
stub.setHeader(sl);
stub.method(arg0, arg1);
private static SOAPHeaderElement setSoapHeader() throws ParserConfigurationException{
// create document of w3c
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document document = db.newDocument();
// create Element
String address= "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd";
Element security = document.createElementNS("namespace", "Security");
security.setAttribute("xmlns:wsse", address);
Element usernameToken = document.createElementNS("namespace", "UsernameToken");
Element username = document.createElementNS("namespace", "Username");
Element password = document.createElementNS("namespace", "Password");
password.setAttribute("Type",
"http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText");
// add Element
usernameToken.appendChild(username);
usernameToken.appendChild(password);
security.appendChild(usernameToken);
// set value
Text usernameValue = document.createTextNode("aaaa");
username.appendChild(usernameValue);
Text passwordValue = document.createTextNode("aaaa");
password.appendChild(passwordValue);
// create SOAPHeaderElement
SOAPHeaderElement ppElement = new SOAPHeaderElement(security);
ppElement.setPrefix("wsse");
return ppElement;
}
分享到:
相关推荐
2. **wss4j-ws-security-dom.jar**:DOM(Document Object Model)版本的WS-Security实现,用于处理基于DOM的XML消息。 3. **wss4j-ws-security-stax.jar**:STAX(Streaming API for XML)版本的实现,适用于处理...
3. **用户身份验证**:支持多种身份验证机制,如用户名令牌、X.509令牌和SAML令牌,确保只有经过认证的用户才能访问服务。 4. **时间戳**:添加时间戳到SOAP消息中,防止重放攻击,确保消息的新鲜性。 5. **密钥...
在Java中,通常使用Apache CXF、Axis2等Web服务框架,它们内置了对WS-Security的支持。 使用"ws-security jar"时,开发者可以配置Web服务客户端和服务器端的策略,设置签名和加密算法,指定认证方式,以及处理证书...
而Rampart是Axis2的一个模块,专门用于实现WS-Security规范,它支持加密、签名、身份验证等多种安全性需求。 【描述】:"这个文档详细描述了本人实现axis2+rampart,有截图和详细配置" 实现axis2和rampart集成以...
当涉及到“axis2客户端调用服务端,带用户身份认证”时,我们主要关注的是如何在 Axis2 客户端中添加安全机制,确保只有经过验证的用户能够访问服务。 首先,理解身份认证是网络安全的基础。在Web服务中,通常采用...
在实际开发中,WS-Security的实现通常依赖于库,如Apache CXF、Axis2或Spring-WS,它们提供了API来简化WS-Security的集成。开发者可以通过这些库轻松地在SOAP消息中添加和验证安全元素。 为了实现WS-Security,...
身份验证是确保只有授权用户或系统能够访问服务的关键步骤。在CXF服务中,可能需要基本HTTP认证、 Digest认证、WS-Security(如X.509证书或Kerberos)等形式的身份验证。 当Axis客户端需要调用一个需要身份验证的...
Apache Axis2是基于Java开发的一个Web服务引擎,它主要用于创建和部署SOAP(简单对象访问协议)和RESTful Web服务。Axis2是Axis1的下一代版本,提供了更高效、可扩展和模块化的架构。在"axis2-1.4.1-bin.zip"这个...
标题和描述提到的"Axis2版本的头鉴权应用"着重讨论的是如何在Axis2中实现基于HTTP头部的认证机制,以确保只有经过授权的用户可以访问服务。 头鉴权(Header Authentication)是一种常见的身份验证方法,它通过HTTP...
通过结合Rampart组件,可以实现在Axis2平台上实现基于WS-Security的安全传输模型。 - **Rampart组件**:Rampart是Apache的一个开源项目,专为Axis2设计,用来实现WS-Security规范。它提供了一系列的工具和服务,...
在实际应用中,如Axis2、Metro和CXF这样的Java Web服务框架支持WS-Policy的配置,以便在服务接口的WSDL文档中定义策略。 在使用WS-Policy时,开发者应确保策略表达式的正确构造,并且遵循标准形式,以便于解析和...
Axis2基于SOAP(Simple Object Access Protocol)协议,支持WSDL(Web Services Description Language)和WS-*规范,如WS-Security、WS-ReliableMessaging等,为开发者提供了一套完整的Web服务解决方案。 2. **身份...
总结来说,RampartC是构建安全的Web服务客户端的关键工具,它提供的功能包括但不限于身份验证、消息加密和完整性保护,以及基于WS-Security协议栈的高级安全特性。通过“rampartc-1.3.0-bin.rar”,开发者可以获得一...
- Axis2集成WS-Security规范,支持消息认证、加密和签名,确保Web服务的安全通信。 - 可以通过配置文件启用安全特性,如用户名令牌、X.509证书等。 7. **性能优化** - Axis2采用缓存策略来提高性能,例如消息...
Axis1和Axis2是两个流行的Java SOAP(简单对象访问协议)Web服务框架,它们由Apache软件基金会开发,用于构建和部署Web服务。这两个框架在不同的版本中提供了对Web服务的不同特性和功能支持。 **Axis1** 是较早的...
这通常涉及到WS-Security标准,如X.509证书、用户名/密码令牌、数字签名等,以确保只有授权的用户和应用程序能够调用服务。 总结:WebService轴心于XML和开放标准,允许不同系统间的无缝通信。Axis2作为实现...
在Web服务领域,安全性是至关重要的,Rampart-C提供了一套完整的安全解决方案,包括消息认证、加密、数字签名以及基于WS-Security标准的各种安全策略。 Rampart-C 1.3.0版本的源码包含了一系列的C语言实现,这些...
Rampart是一个在Apache Axis2框架下开发的安全模块,它主要负责实现Web服务安全标准,如WS-Security、WS-SecureConversation和WS-Trust。这个发布包包含了Rampart的源代码,允许开发者深入理解其内部工作原理,并...
它提供了基于WS-Security标准的安全解决方案,包括消息认证、加密、签名等,使得Web服务能够实现安全的通信。在本文中,我们将深入探讨Rampart的发布包、源代码,以及在实际应用中的使用总结。 首先,Rampart的发布...