【问题标题】:Code position of keystore and truststore in java servletjava servlet中keystore和truststore的代码位置
【发布时间】:2023-03-25 11:49:01
【问题描述】:

我正在使用组织的支付 API。当客户付款时,API 会自动向我们的服务器发布一个soap 请求,我用xml 中的确认消息进行响应。 (查看屏幕截图显示了 SOAP UI 中的简单演示)

SOAP UI Test Response

SOAP UI Test Raw XML

我用Java编写了这段代码来接收soap请求并发送响应。

`public class testsoap extends HttpServlet {

protected void processRequest(HttpServletRequest request,    
HttpServletResponse response)throws ServletException, IOException {

response.setContentType("text/xml;charset=UTF-8");
    ServletInputStream out = request.getInputStream();

    String xmlrpc = "";
    int c = 0;
    while((c = out.read()) != -1 ){ xmlrpc += (char)c; }

    int startTag = xmlrpc.indexOf("<TransID>");
    int endTag = xmlrpc.indexOf("</TransID>");

    String parameter = xmlrpc.substring(startTag,endTag).replaceAll("<TransID>","");

    String result="";
    //result +="<?xml version=\"1.0\"?>\n";
    result +="<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:c2b=\"http://cps.huawei.com/cpsinterface/c2bpayment\">\n";
    result +="<soapenv:Header/>\n";
    result +="<soapenv:Body>\n";
    result +="<c2b:C2BPaymentConfirmationResult>C2B Payment Transaction "+parameter+" result received.</c2b:C2BPaymentConfirmationResult>\n";
    result +="</soapenv:Body>\n";
    result +="</soapenv:Envelope>\n";

    response.getWriter().println(result);

}

}`

现在我需要添加我的密钥库和信任库的位置。 我应该在开始准备回复之前添加此代码吗?

` System.setProperty("javax.net.ssl.keyStore",path_to_keystore);
    System.setProperty("javax.net.ssl.keyStorePassword",akeystorepassword);

    System.setProperty("javax.net.ssl.trustStore",path_to_your_cacerts_file);
    System.setProperty("javax.net.ssl.trustStorePassword",atrustsorepassword)`

或者我是否需要使用密钥库和信任库进行安全连接的 sn-p 而不仅仅是设置系统属性?

【问题讨论】:

  • 或者这不是完成整个场景的适当方式吗?

标签: java xml web-services keystore truststore


【解决方案1】:

创建一个 Java 类并编写您需要作为方法发布的所有功能。然后,您需要将这些功能发布为 WSDL 以供您的客户使用。请参阅以下教程,该教程将引导您逐步发布 Web 服务:

Step by Step JAX-WS Web Services with Eclipse, TomEE, and Apache CXF

Building a Simple Web Service ? A Tutorial

Implementing a simple web service

进一步根据您的要求,您可以将复杂对象作为输入参数,例如 C2BPaumentConfirmationRequestKYCInfo 在您的情况下

【讨论】:

  • Salman,抱歉我忘了提,我已经有一个现有的 WSDL 文件。该组织提供 API。
  • @BrianHawi 那么在这种情况下,您充当客户端,支付组织充当服务器。在这种情况下,您可以使用许多工具(例如 Axis1.x、Axis2 和 Apcahce CXF)从提供给您的 WSDL 链接创建代码。以下链接显示了使用 Eclipse Generating a client from WSDL 的方法
  • 我还在做客户吗?导致组织将数据发布到我的服务器,我将数据保存在数据库中,然后回复适当的响应...
  • @BrianHawi 如果组织的系统向您的系统发布请求,那么您的系统会立即在同一会话中回复他们,那么您可以按照我发布的答案向组织提供您自己的 WSDL .请记住,在这种情况下,您充当服务器,而组织的系统充当客户端。另一方面,如果您需要在不同的会话中向组织服务器发布请求(与第一个场景无关),那么您需要根据组织团队提供给您的 WSDL 创建一个客户端。为此,请按照我的第一条评论。
猜你喜欢
  • 2023-02-02
  • 1970-01-01
  • 2016-07-28
  • 1970-01-01
  • 2018-07-19
  • 2023-04-01
  • 2021-08-14
  • 2019-08-11
  • 1970-01-01
相关资源
最近更新 更多