当前位置: 首页 > 知识库问答 >
问题:

如何在邮件中添加安全标头?

齐夕
2023-03-14

我想用JAVA构建一个简单的soap客户机来调用soap JAVA web服务。所以我在我的项目中导入了WSDL,并构建了客户端。因此,如果我试图运行我的代码,我会遇到以下错误:

AVVERTENZA:找不到所需的类(javax.activation.DataHandler和javax.mail.internet.MimeMultipart)。附件支持已禁用。AxisFault故障代码:{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}InvalidSecurity faultSubcode:faultString:ERROR:在faultActor:faultNode:faultDetail:{http://xml.apache.org/axis/}stackTrace:错误:在org上的邮件中找不到安全标头。阿帕奇。轴消息SOAPFaultBuilder。createFault(SOAPFaultBuilder.java:222)位于org。阿帕奇。轴消息SOAPFaultBuilder。org上的endElement(SOAPFaultBuilder.java:129)。阿帕奇。轴编码。反序列化上下文。com上的endElement(DeserializationContext.java:1087)。太阳组织。阿帕奇。薛西斯。内部的解析器。抽象语法分析器。com上的endElement(AbstractSAXParser.java:609)。太阳组织。阿帕奇。薛西斯。内部的impl。XMLDocumentFragmentScannerImpl。ScannedElement(XMLDocumentFragmentScannerImpl.java:1782)位于com。太阳组织。阿帕奇。薛西斯。内部的impl。XMLDocumentFragmentScannerImpl$FragmentContentDriver。下一步(XMLDocumentFragmentScannerImpl.java:2973)访问com。太阳组织。阿帕奇。薛西斯。内部的impl。XMLDocumentScannerImpl。下一步(XMLDocumentScannerImpl.java:606)访问com。太阳组织。阿帕奇。薛西斯。内部的impl。XMLNSDocumentScannerImpl。接下来(XMLNSDocumentScannerImpl.java:117)。。。。。。。。。

问题是:

错误:在消息中找不到安全标头

我怎样才能解决这个问题?

编辑::

这是我使用的代码:

String keyStorePath = "C:\\Users\\michele.castriotta\\Desktop\\Certificati\\keystore_healthnetbr.jks";
FileInputStream is = new FileInputStream(keyStorePath);
KeyStore keystore = KeyStore.getInstance(KeyStore.getDefaultType());
keystore.load(is, "changeit".toCharArray());
String alias = "edotto";

Key key = keystore.getKey(alias, "changeit".toCharArray());

if (key instanceof PrivateKey) {
    // Get certificate of public key
    Certificate cert = keystore.getCertificate(alias);

    // Get public key
    PublicKey publicKey = cert.getPublicKey();

    // Return a key pair
    new KeyPair(publicKey, (PrivateKey) key);
}


AttributiAutorizzativi attributi = new AttributiAutorizzativi("getElencoPAIDomiciliare",
        "HEALTHNETBR","RIS000282");



ElencoPAIDomiciliareRequest criterioRicerca = new ElencoPAIDomiciliareRequest();
criterioRicerca.setDataInizioRiferimento("01/12/2000");
criterioRicerca.setDataFineRiferimento("01/07/2015");
criterioRicerca.setCodiceNazionale("160114");
criterioRicerca.setTipologiaAssistenzaAutorizzata(0);
criterioRicerca.setDistretto("53");


GetElencoPAIDomiciliare request = new GetElencoPAIDomiciliare();
request.setCriteriRicerca(criterioRicerca);

//

PianoAssistenzialeResidenzialeService service = new PianoAssistenzialeResidenzialeServiceLocator();
PianoAssistenzialeResidenziale stub = service.getPianoAssistenzialeResidenzialePort();


PianoAssistenzialeResidenzialeProxy client = new PianoAssistenzialeResidenzialeProxy();
client.getElencoPAIDomiciliare(request, attributi);

System.out.println("done");

共有1个答案

屠晟睿
2023-03-14

如果使用Axis2开发客户机,可以使用Rampart,如果没有,可以添加wsse头,手动创建和添加元素

SOAPHeader header = context.getMessage().getSOAPPart().getEnvelope().addHeader();
header.addChildElement(securitySOAPElement);

也可以使用WSS4J(最佳选择)

 类似资料:
  • 我创建了一个基于wsdl文件的客户机。 这可能是因为web服务是用C#编写的,而且最有可能的是,它需要oasis头,在其中存储用户名和密码值。 我现在能创造的新环境是: 所需的enevelope如下:

  • 问题内容: 我想在电子邮件正文中添加图片。我不想将图像附加到电子邮件,但要在电子邮件正文中添加图像。 这个怎么做? 我正在用这个。 要么 然后像这样显示图像 问题答案: 不幸的是,使用Intents不可能做到这一点。 为什么例如粗体文本显示在EditText上,而不是一个形象的原因是StyleSplan 正在实施Parcelable 而ImageSpan 没有。因此,当在新的Activity中检索

  • 问题内容: 我有一个来自oracle的NO.net Web服务,要访问,我需要添加soap标头。如何在Java中添加soap标头? 这有必要吗? 我的肥皂标头是这样的: 问题答案: 我做到了,只需按照本教程进行即可。很有帮助 是来自javadb的副本(因为已关闭) http://informatictips.blogspot.pt/2013/09/using-message-handler-to-

  • 我想使用javascript访问一个网站。但我在控制台中遇到以下错误。 拒绝连接到'https://example.com'因为它违反了以下内容安全策略指令:“default src'self'”。请注意,未显式设置“connect src”,因此使用“default src”作为回退。 我在index.html中添加了以下meta标记, 元超文本传输协议-Equiv="内容-安全-策略"内容="

  • 我在文件。我正在使用要成为电子邮件模板和电子邮件,我需要添加图像,但我不能。我是新加入节点的。js和Stack Overflow,我在下面放了一些关于我的代码的信息。 app.useexpress.static(path.join__dirname)