Tag: ws security

Java客户端使用DIME附件调用WSE 2.0

我需要与使用WSE 2.0 for WS-Security和DIME的传统.NET Web服务集成。 我需要从Java应用程序执行此操作。 我期待Axis2能够与WS-Security一起工作,因为这里的人们之前已经完成了。 这是我关注的DIME。 我在http://ws.apache.org/axis/java/client-side-axis.html上看到对DIME的引用,但我想知道是否有人用Axis和WSE 2.0 Web服务实际完成了这项工作。

使用Metro的Ws-Security标头

我有一个实现WS-Security的Web服务,但没有在WSDL中定义策略。 我可以使用Axis 2作为客户端成功使用此Web服务。 我试图使用Metro 2使用相同的Web服务,但wsse:security标头不会。 仅当服务定义了不受我控制的安全策略时,它才有效。 我通过创建示例Web服务对此进行了测试,除非我定义策略,否则我的metro客户端永远不会发送wsse:security标头。 使用Metro有什么我想念的吗? 编辑 – – – – – – – – – – – – – – – – – – – – – – – – – —————————————– 我创建了wsdl的本地副本,并在其中定义了策略。 我使用这个wsdl创建了Web服务客户端,但仍然没有安全头。 wsit-client.xml文件看起来很好。 我甚至将所有配置与Web服务的客户端进行了比较,该客户端定义了策略并且配置相同但仍然不起作用。 截至目前我的结论是,城域客户端需要实际的Web服务定义策略。 编辑 – – – – – – – – – – – – – – […]

使用带有自己的安全框架的axis2 ramaprt模块

我在我的项目中使用axis2实现了webservice(服务器端)。 我们希望在现有Web服务中启用WS-security。 我们正在评估apache ramapart模块是否符合我们的需求。 这是我们的要求:基本上我们有内部安全框架,提供加密,签名和令牌生成function。 我们的内部安全框架基本上需要以XMLforms的一组配置,并且它公开各种API以执行各种安全操作。 现在有了上述环境,我可以想到三种可能的解决方案: – 我可以围绕内部安全框架开发一个axis2模块,并在安全阶段将其安装为.mar文件。 所以我不会使用apache rampart。 但是这种方法的问题是我不能使用ws-security策略来指定安全断言并确保传入的安全性令牌符合有效的策略。 这就像重新发明轮子已经做的那样。 我相信apache rampart强调要求apache wss4j模块进行安全操作。 我相信apache wss4j模块提供了一种注册第三方安全提供程序的方法(通过实现CryptoProvider接口)。 我不确定这是否是可行和可行的解决方案。 请建议。 Ws-security策略允许使用自定义令牌。 可以使用我们的内部安全框架构建此自定义令牌。 所以基本上它使我们能够使用apache rampart模块创建ws-security策略,并使用我们的安全框架开发自定义令牌。 但我在互联网上找不到这方面的帮助。 有谁可以帮助举例。 任何其他建议也是最受欢迎的。

如何将pfx文件转换为jks然后使用它来通过使用wsdl生成的类来签署传出的soap请求

我正在寻找一个代码示例,该示例演示如何使用PFX证书通过SSL访问安全Web服务。 我有证书和密码,我开始使用下面提到的命令创建一个KeyStore实例。 keytool -importkeystore -destkeystore “C:\Program Files\Java\jdk1.8.0_131\jre\lib\security\dvs.keystore” -srckeystore “C:\Program Files\Java\jdk1.8.0_131\jre\lib\security\key.pfx” -srcstoretype pkcs12 -deststoretype JKS -srcstorepass ******* 然后我使用wsimport -keep -verbose -extension https://sandpit.dvshub.com.au:19443/Bus/VerificationServiceBus.svc?wsdl命令生成Java文件。 之后我创建了一个主类,在其中我指定了几个参数,例如这些证书的位置。 System.setProperty(“javax.net.ssl.trustStore”, trustStoreFile); System.setProperty(“javax.net.ssl.trustStorePassword”, trustStorePassword); System.setProperty(“javax.net.ssl.keyStore”, certificateFile); System.setProperty(“javax.net.ssl.keyStorePassword”, certificatePassword); System.setProperty(“sun.security.ssl.allowUnsafeRenegotiation”, “true”); System.setProperty(“javax.net.ssl.keyStore”, “C:\\Users\\Administrator\\Desktop\\dvs\\key.pfx”); System.setProperty(“javax.net.ssl.keyStoreType”, “PKCS12”); System.setProperty(“javax.net.ssl.keyStorePassword”, certificatePassword); 然后我最终调用了wsimport使用它生成的服务创建的web方法。 CreatedService service = ServiceFactory/Port/Creator.getCreatedService(); // Where ‘CreatedService’ and ‘ServiceFactory/Port/Creator’ were created by wsimport: this code entirely […]

使用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( […]

WSIT / Metro不了解​​Security SOAP标头

我正在使用WSIT / Metro来创建一个简单的Web服务。 当客户端尝试使用简单的用户名/ passowrd身份validation方案连接时,我在服务器上收到以下错误: 2010.03.31. 19:10:33 com.sun.xml.ws.protocol.soap.MUTube getMisUnderstoodHeaders INFO: Element not understood={http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}Security 我不知道如何让WSIT理解安全块。 我从客户那里得到的请求: admin admin http://localhost:11122/services/TopJtapiRemoteMethods urn:uuid:D5C576F83D74F761311270055433217 urn:hasCallPolling 服务器的WSDL: 我的代码,设置服务器: import java.io.InputStream; import java.util.Collections; import javax.jws.WebService; import javax.xml.transform.Source; import javax.xml.transform.stream.StreamSource; import javax.xml.ws.Endpoint; import javax.xml.ws.Holder; import com.topdesk.cti.topjtapi.soapserver2.HasCallPollingResponse; import com.topdesk.cti.topjtapi.soapserver2.TopJtapiRemoteMethodsPortType; public class EndpointTester { @WebService(endpointInterface = “com.topdesk.cti.topjtapi.soapserver2.TopJtapiRemoteMethodsPortType”) private static final class MockImplementation implements TopJtapiRemoteMethodsPortType { […]

JAX-WS使用WS-Security和WS-Addressing来使用Web服务

我正在尝试使用JAX-WS(Metro)开发独立的Java Web服务客户端,该客户端使用带有用户名令牌身份validation的WS-Security(密码摘要,随机数和时间戳)和时间戳validation以及SSL上的WS-Addressing。 我必须使用的WSDL没有定义任何安全策略信息。 当WSDL不包含此信息时,我无法确切地知道如何添加此标头信息(正确的方法)。 我发现使用Metro的大多数示例都围绕着使用Netbeans从WSDL自动生成,这对我没有任何帮助。 我没有太多的清晰度或方向,已经研究过WSIT,XWSS等。 JBoss WS Metro看起来很有希望,但也有。 任何人都有这方面的经验或有关如何完成此任务的建议? 即使把我指向正确的方向也会有所帮助。 除了必须基于Java之外,我不限于特定技术。

如何在java中添加soap标头

我有来自oracle的NO-.net webservice要访问我需要添加soap标头。 如何在java中添加soap标头? Authenticator.setDefault(new ProxyAuthenticator(“username”, “password”)); System.getProperties().put(“proxySet”, “true”); System.setProperty(“http.proxyHost”, “IP”); System.setProperty(“http.proxyPort”, “port”); proxy = new RegPresMed_Service(new URL(“webservice”)).getRegPresMed(); ((BindingProvider) proxy).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, “realwebservice”); ((BindingProvider) proxy).getRequestContext().put(“com.sun.xml.ws.request.timeout”, new Integer(60000)); ((BindingProvider) proxy).getRequestContext().put(BindingProvider.USERNAME_PROPERTY, “webserviceUsername”); ((BindingProvider) proxy).getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, “webservicePassword”); 这有必要吗? ((BindingProvider) proxy).getRequestContext().put(BindingProvider.USERNAME_PROPERTY, “webserviceUsername”); ((BindingProvider) proxy).getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, “webservicePassword”); 我的肥皂标题是这样的: username password randomnaumber== dateCreated

将ws-security添加到wsdl2java生成的类中

我使用CXF的wsdl2java从WSDL生成了一堆客户端类。 在执行以下操作时,如何将WS-Security添加到标头: URL url = new URL(“http://fqdn:8080/service/MessageHandler”); MessageHandlerService service = new MessageHandlerService(url); MessageHandler handler = service.getMessageHandler(); MyMessage message = new MyMessage(); message.setSender(“User 1”); handler.sendMessage(message); 我认为handler是一个javax.xml.ws.Service实例。

无法从KeyStore获取密钥

我试着从KeyStore获取Key。 我用Keytool创建了一个密钥库: keytool -genkeypair -dname“cn = Mark Jones,ou = JavaSoft,o = Sun,c = US”-alias business2 -keypass abcdtest -keystore C:\ workspace \ XMLSample \ keystore \ mykeystore.jks -storepass 123456 以下是GenerateXML.java import java.io.FileInputStream; import java.security.KeyStore; import java.security.cert.X509Certificate; import javax.xml.crypto.dsig.XMLSignContext; import javax.xml.crypto.dsig.XMLSignatureFactory; import javax.xml.crypto.dsig.dom.DOMSignContext; import javax.xml.parsers.DocumentBuilderFactory; import org.w3c.dom.Document; public class GenerateXML { public static void main(String[] args) throws […]