gpt4 book ai didi

java - 配置maven插件cxf-codegen-plugin以忽略安全问题

转载 作者:太空宇宙 更新时间:2023-11-04 12:04:52 25 4
gpt4 key购买 nike

我目前正在尝试建立一个 Maven 项目,该项目根据一些 WSDL 文件生成一些 Java 代码。

不幸的是,我遇到了一些问题,因为我的测试环境没有有效的 SSL 证书(我已使用 chrome 确认了这一点)。因为这是在测试环境中发生的,所以我不担心安全性。我只希望我的代码生成能够工作。

下面展示我目前如何使用插件cxf-codegen-plugin

        <plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>3.1.8</version>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<configuration>
<sourceRoot>${project.build.directory}/generated/cxf</sourceRoot>
<defaultOptions>
<bindingFiles>
<bindingFile>${basedir}/src/main/jaxb/jaxb.bindings.xml</bindingFile>
</bindingFiles>
<packagenames>
<packagename>foo.bar</packagename>
</packagenames>
<extraargs>
<extraarg>-client</extraarg>
</extraargs>

</defaultOptions>
<wsdlOptions>
<wsdlOption>
<wsdl>[Removed URL]</wsdl>
</wsdlOption>

</wsdlOptions>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
</plugin>

当我运行 mvn clean install maven 时输出以下错误

[错误] 无法在项目 TestClient 上执行目标 org.apache.cxf:cxf-codegen-plugin:3.1.8:wsdl2java (generate-sources):执行目标 org.apache.cxf:cxf-codegen-plugin:3.1.8:wsdl2java 的生成源失败:org.apache.cxf.wsdl11.WSDLRuntimeException:无法创建 wsdl 定义 [已删除的 URL] WSDLException:faultCode=PARSER_ERROR:解析 [已删除的 URL] 时出现问题。:javax.net.ssl.SSLHandshakeException:java.security.cert.CertificateException:没有找到主题替代DNS名称匹配....。 -> [帮助1]

所以我的问题基本上是是否有某种方法可以配置 cxf-codegen-plugin s.t。它只是忽略所有安全问题并继续生成 Java 代码?

最佳答案

不知道是否可以忽略,但您可以将证书添加到本地证书存储中,这似乎也可以解决您的问题。

在不了解有关您的开发环境的任何进一步详细信息的情况下,这些说明可能会直接应用或至少进行一些修改。

我从 Ishwara Varnasi 的这篇博文中找到了帮助:

http://ibswings.blogspot.fi/2008/12/running-axis-wsdl2java-on-https-wsdl.html

简要步骤:

  1. 将证书下载到 %JAVA_HOME%/jre/lib/security 。该目录可能有所不同,但应该有 java jre cacert 证书存储。
  2. 将下载的证书导入到同一目录中的 cacerts 文件中。它是一个在导入之前制作原始 cacerts 文件的备份副本是个好主意。

更详细的步骤:

  1. 可以通过浏览器确认来获取证书安全异常并永久存储证书,然后将其从浏览器导出到所需目录。以 X.509 格式导出应该可以正常工作,不知道其他格式。还有工具像openssl可以用来下载证书,参见 Using openssl to get the certificate from a server
  2. 使用适当的工具导入证书,例如:

    keytool -importcert -trustcacerts -keystore cacerts -storepass changeit -alias aliasname -file cert_to_import_file_name

    有关导入的更多信息: How to properly import a selfsigned certificate into Java keystore that is available to all Java applications by default?

至少就我而言,商店通行证确实是“changeit”。所以并不是像我第一次想到的那样将其更改为任何“真正的”商店通行证。

如果使用多个 Java 版本,请务必将证书导入到正确的 JRE,或者将其添加到所有版本。

关于java - 配置maven插件cxf-codegen-plugin以忽略安全问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40486421/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com