Tag: wss4j

如何在WCF Web服务中关闭SecureConversationToken

我有一个带WS- *安全性的WCF Web服务,我需要使用WSS4J API为它编写Java客户端。 但是,事实certificate,WSS4J不支持和标记,这些标记特定于WS-SecureConversation。 有没有办法通过代码或更好的方式通过web.config关闭它? 更新: 服务定义: 行为和约束:

使用Apache CXF注释的UsernameToken WS-Security(WSS4J)

我正在尝试创建一个“java first”webservice,它将使用简单的UsernameToken WS-Security。 我试图遵循CXF的例子。 当我查询我的wsdl时,我看不到任何与安全相关的内容。 我正在使用CXF 2.7.5而我正在尝试用注释做所有事情。 以下是我失败的尝试: SampleService.java: import java.util.ArrayList; import java.util.Date; import javax.jws.WebParam; import javax.jws.WebMethod; import javax.jws.WebService; import javax.jws.soap.SOAPBinding; import org.apache.cxf.annotations.EndpointProperties; import org.apache.cxf.annotations.EndpointProperty; @WebService(targetNamespace=”https://test.company.com/ws/”) @SOAPBinding(style = SOAPBinding.Style.RPC) @EndpointProperties({ @EndpointProperty(key = “action”, value=”UsernameToken”), @EndpointProperty(key = “passwordType”, value=”PasswordText”), @EndpointProperty(key = “ws-security.callback-handler”, value=”PasswordHandler”), //@EndpointProperty(key = “ws-security.validate.token”, value=”false”), }) public interface SampleService { @WebMethod public String getSample( […]

SOAPFaultException“MustUnderstand标头(oasis-200401-wss-wssecurity-secext-1.0.xsd)未被理解”

我尝试从使用PasswordText WSS类型的Web服务获取信息。 首先,我使用soapUI测试它并成功获取数据。 然后我在Java上实现了身份validation,编写了SecurityHandler: public final class SecurityHandler implements SOAPHandler { … @Override public boolean handleMessage(SOAPMessageContext messageContext) { boolean outInd = (Boolean) messageContext.get(MessageContext.MESSAGE_OUTBOUND_PROPERTY); if (outInd) { try { WSSecUsernameToken builder = new WSSecUsernameToken(); builder.setPasswordType(WSConstants.PASSWORD_TEXT); builder.setUserInfo(_username, _password); builder.addNonce(); builder.addCreated(); Document doc = messageContext.getMessage().getSOAPPart().getEnvelope().getOwnerDocument(); WSSecHeader secHeader = new WSSecHeader(); secHeader.insertSecurityHeader(doc); builder.build(doc, secHeader); } catch (Exception e) { […]