由于 Cloud Foundry 上的 SSL 错误,JaxB 无法解组?

2024-04-16

我有一个 Web 应用程序,使用 thymeleaf、Spring Boot、AngularJS 和 Oracle sql Developer db。

在本地,我能够连接并从 Oracle 获取值。但是当我将应用程序推送到 Cloud Foundry 时,我得到的状态=500。

ERROR

我正在解组的网址具有不受信任的证书(“您的连接不安全)”。我将 cacerts 添加到我的 jvm 中,这使得它可以在本地工作。但我相信我需要将 cacerts 添加到 Cloud Foundry 中。我怎样才能做到这一点?

SSL 错误

 ERR java.net.ConnectException: Connection timed out  
 ERR at java.net.PlainSocketImpl.socketConnect(Native Method)  
 ERR at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)  
 ERR at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)  
 ERR at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)  
 ERR at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)  
 ERR at java.net.Socket.connect(Socket.java:589)  
 ERR at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:668)  
 ERR at sun.net.NetworkClient.doConnect(NetworkClient.java:180)  
 ERR at sun.net.www.http.HttpClient.openServer(HttpClient.java:432)  
 ERR at sun.security.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:173)  
 ERR at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:367)  
 ERR at sun.net.www.http.HttpClient.openServer(HttpClient.java:527)  
 ERR at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:264)  
 ERR at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:191)  
 ERR at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1105)  
 ERR at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)  
 ERR at rest.springframework.controllers.IndexController.getDetails(IndexController.java:59)  
 ERR at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
 ERR at java.lang.reflect.Method.invoke(Method.java:498)  
 ERR at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:999)  

rest.springframework.jaxb.JAXSample.readXML 处出现错误(JAXSample.java:34)

Reason

我从应用程序中删除了 jaxB 解组并上传到 Cloud Foundry,但没有获得 status=500。如何添加 SSL 来防止这种情况发生?

JaxB 样本

public deviceCert readXML(String MAC) throws MalformedURLException {
  results customer = null;
  deviceCert dcert = null;
  String APPKEY = "Production";

  try {
      JAXBContext jaxbContext  = JAXBContext.newInstance(results.class);
      //line 34 is below VV.
      URL url = new URL("https://untrusted.page.that.I.Am/unmarshalling" + "?mac=" + MAC + "&app_key=" + APPKEY);

      HttpURLConnection http = (HttpURLConnection) url.openConnection(); 

      http.addRequestProperty("User-Agent", "Mozilla/4.76"); 
      InputStream is = http.getInputStream();
      Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
      customer = (results) jaxbUnmarshaller.unmarshal(is);

      List<deviceCert> dcerts = customer.getDcerts();
      dcert = dcerts.get(0);

找到相关链接here https://stackoverflow.com/questions/39391896/pivotal-cloud-foundry-security-certificates?rq=1

我跟着CF CLI SSL https://docs.cloudfoundry.org/cf-cli/self-signed.html但这并没有达到目的。

Attempt

  1. 在我的应用程序中创建了文件夹 resources/config/truststore。
  2. 将 Cert.cer 添加到信任库文件夹中。
  3. 将应用程序推送到 Cloud Foundry。
  4. cf set-env my-app JAVA_OPTS '-Djavax.net.ssl.TrustStore=classpath:resources/config/truststore'

同样的错误没有任何改变。

尝试2

 <dependency>
  <groupId>io.pivotal.spring.cloud</groupId>
  <artifactId>cloudfoundry-certificate-truster</artifactId>
  <version>1.0.1.RELEASE</version>
 </dependency>
  1. 添加依赖项

  2. 重新打包app,上传至cf。

  3. Cloud Foundry 添加环境变量

    CF_TARGET=https://api.my-cf-domain.com https://api.my-cf-domain.com

               //url of my secured/untrusted page
    

GitHub 示例 https://github.com/pivotal-cf/cloudfoundry-certificate-truster

新的 StackTrace 错误

ERR at java.util.concurrent.FutureTask.get(FutureTask.java:205)
ERR at io.pivotal.springcloud.ssl.SslCertificateTruster.getUntrustedCertificateInternal(SslCertificateTruster.java:90)
ERR at io.pivotal.springcloud.ssl.SslCertificateTruster.getUntrustedCertificate(SslCertificateTruster.java:66)
ERR at io.pivotal.springcloud.ssl.CloudFoundryCertificateTruster.trustCertificatesInternal(CloudFoundryCertificateTruster.java:44)
ERR at io.pivotal.springcloud.ssl.CloudFoundryCertificateTruster.trustCertificates(CloudFoundryCertificateTruster.java:32)
ERR at org.springframework.boot.SpringApplication.createSpringFactoriesInstances(SpringApplication.java:420)
ERR at org.springframework.boot.SpringApplication.getSpringFactoriesInstances(SpringApplication.java:403)
ERR at org.springframework.boot.SpringApplication.getSpringFactoriesInstances(SpringApplication.java:394)
ERR at org.springframework.boot.SpringApplication.initialize(SpringApplication.java:261)
ERR at org.springframework.boot.SpringApplication.<init>(SpringApplication.java:237)
ERR at org.springframework.boot.SpringApplication.run(SpringApplication.java:1175)
ERR at rest.springframework.SpringBootWebApplication.main(SpringBootWebApplication.java:13)
ERR at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
ERR at java.lang.reflect.Method.invoke(Method.java:498)
ERR at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48)
ERR at org.springframework.boot.loader.Launcher.launch(Launcher.java:87)
ERR at org.springframework.boot.loader.Launcher.launch(Launcher.java:50)

为什么这个作品在本地可以找到而在云端却找不到?


有多种方法可以将 CA 证书添加到容器中:
https://discuss.pivotal.io/hc/en-us/articles/223454928-How-to-tell-application-containers-running-Java-apps-to-trust-self-signed-certs-or-a-私有内部CA https://discuss.pivotal.io/hc/en-us/articles/223454928-How-to-tell-application-containers-running-Java-apps-to-trust-self-signed-certs-or-a-private-internal-CA

最简单的方法可能是将 Java VM 指向您在应用程序中捆绑的 cacert 文件,使用cf set-env <app> JAVA_OPTS '-Djavax.net.ssl.TrustStore=classpath:resources/config/truststore'或使用应用程序清单中的“env”属性。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

由于 Cloud Foundry 上的 SSL 错误,JaxB 无法解组? 的相关文章

  • WebFlux 应用程序中的 WebFilter

    我有一个使用 Spring Boot 2 0 0 M5 2 0 0 BUILD SNAPSHOT 的 Spring Boot WebFlux 应用程序 我需要将跟踪 ID 添加到所有日志中 为了让它在 WebFlux 应用程序中工作 我尝试
  • 引起原因:com.datastax.driver.core.exceptions.InvalidQueryException:日期长度应为 8 或 0 字节 (13)

    我正在尝试使用 spring data cassandra 插入数据 但是当我的应用程序使用 Spring Boot 版本是 1 5 3 运行时 我遇到了以下错误 我在spring data中添加了一个实现CrudResposity的自定义
  • Spring Boot 是否支持服务器名称指示(SNI)?

    Spring Boot 是否支持服务器名称指示 SNI 具体来说 运行嵌入式 Tomcat 服务器并打包为可执行 jar 文件的 Spring Boot 2 2 2 RELEASE 应用程序是否可以根据传入请求的主机名支持多个 SSL 证书
  • 将 spring boot 应用导入到另一个项目中

    因此 我尝试在另一个项目 测试框架 中添加一个 spring boot 可执行 jar 作为依赖项 但是一旦添加到 pom 并导入 Java 导入无法正常工作 如果我查看 jar 内部 所有包都带有以下前缀 BOOT INF classes
  • Spring boot MongoRepository 中的“无法找到类型类的 PersistentEntity”异常

    在这里我在 mongodb 中配置了两个数据库 如本教程中所述 link https blog marcosbarbero com multiple mongodb connectors in spring boot 所以基本上我重写了Mo
  • java.sql.SQLException:在结果集开始之前[重复]

    这个问题在这里已经有答案了 我已尝试使用以下代码来检索存储在数据库中的图像 我创建了一个名为image db包含一个名为的表image details 该表有两个字段 id and image path两者都是类型mediumblob 我在
  • Liquibase 从 JPA 实体生成变更日志

    我有一个 Spring boot spring data jpa 项目 带有一个父模块和三个子模块 我的模块之一负责我的 JPA 实体 我需要使用该实体的 liquibase 生成一个 xml 变更日志 在我的 liquibase prop
  • 使用Spring Cloud Stream Kafka动态更改instanceindex

    如同 在运行时更改 spring cloud stream 实例索引 计数 https stackoverflow com questions 37579939 changing spring cloud stream instance i
  • Spring Boot中使用自定义令牌进行身份验证

    我需要保护我的 Spring Boot 应用程序 这就是我所拥有的 一个 Spring Boot 应用程序 公开了一些 REST API 与公开的 api 通信的前端 前端发送用于身份验证的自定义身份验证令牌 存储自定义身份验证令牌的数据库
  • 春季启动大战

    我倾向于在开发过程中使用可运行的 JAR 但我需要 WAR 来进行部署 我已经关注了this http spring io guides gs convert jar to war 有关从 JAR 转换为 WAR Spring Boot G
  • Spring Websocket升级请求处理

    我正在尝试使用Spring Websocket with Sockjs and STOMPjs 如上所述Spring Websocket 文档 https docs spring io spring docs 5 0 0 BUILD SNA
  • 测试期间依赖性不满足

    我有一个运行良好的 Spring Boot 2 0 0 M2 应用程序 我在构造函数上使用自动装配 RequestMapping value rest RestController public class AddressRestContr
  • 在 IntelliJ IDE 中找不到 Maven 插件

    我的项目中有一个新错误 位于 pom xml 文件中 我该如何修复它 IntelliJ IDEA中出现如下错误 Plugin org springframework boot spring boot maven plugin not fou
  • 获取jdbc中表依赖顺序

    我在 MySQL 数据库中有一组表 A B C D 依赖关系如下 B gt C gt A 和 D gt A 也就是说 A 有一个 PrimaryKey C 有一个外键指向 A 的主键 B 有一个外键指向 C 的主键 类似地 D 有一个外键指
  • 使用 JPype - 如何访问 JDBC 元数据函数

    我在用着杰 德贝API https launchpad net jaydebeapi它使用 JPype 加载 FileMaker 的 JDBC 驱动程序并提取数据 但我也希望能够获取所有表的列表在数据库中 In the JDBC 文档 ht
  • BoneCP 和 Derby - 如何正确关闭

    I have BoneCP CONNECTION POOL CONNECTION POOL getConfig setJdbcUrl jdbc derby database shutdown true Connection connecti
  • H2控制台看不到JAVA创建的表

    我已经从以下位置下载了 H2 控制台http www h2database com html download html http www h2database com html download html我已经在我的中配置了 URLjdb
  • 在 Spring Webflux 中执行阻塞 JDBC 调用

    我使用 Spring Webflux 和 Spring data jpa 使用 PostgreSql 作为后端数据库 我不想在进行数据库调用时阻塞主线程 例如find and save 为了实现同样的目标 我有一个主调度程序Controll
  • Mockito mockStatic 无法解析符号

    我正在使用 Spring Boot 并在单元测试中 我试图模拟Files delete myFile toPath method 为此 我尝试使用Mockito mockStatic 方法 但是当我尝试使用它时 我的 IDE Intelli
  • 使用 JDBC 连接到 PostgreSql 的本地实例

    我在 Linux 机器上有一个正在运行的 PostgreSql 本地实例 当我使用psql来自 shell 的命令我成功登录 没有任何问题 我需要通过 JDBC 连接到 PostgreSql 但我不知道我到底应该传递什么url参数为Driv

随机推荐

  • 获取脚本路径

    在 CSS 中 任何图像路径都是相对于 CSS 文件位置的 f ex 如果我将 CSS 文件放入 media css mystyles css并使用类似的东西 background url images myimage jpg 浏览器将在以
  • NLTK CoreNLPDependencyParser:无法建立连接

    我正在尝试通过 NLTK 使用斯坦福解析器 按照示例here http www nltk org api nltk parse html nltk parse corenlp CoreNLPDependencyParser 20tutori
  • apache 的子进程返回退出代码 -6,但没有 stdout 或 stderr

    当从 apache 进程运行 git status 甚至 ls 时 我经常得不到标准输出或错误 并且退出状态代码为 6 其他时候 它就有效 有什么想法为什么会发生这种情况或者这意味着什么吗 如果您所在的网络有很多人 则可能会耗尽可用的并发连
  • ASP.Net 动态切换母版页

    以前从未需要这样做 但是是否可以动态设置 更改页面正在使用的母版页 有一个旧的 asp net web 表单项目 我为它创建了一个新的引导模板 但老板希望给人们机会打开新的模板 而不是强迫他们使用 我建议您创建一个 BasePage 类 而
  • Java 中的全局异常处理程序

    我正在考虑使用以下命令为我的 Android 移动应用程序 使用 Java 语法 设置一个全局默认异常处理程序Thread setDefaultUncaughtExceptionHandler 称呼 我正在考虑只向用户显示一个带有适当消息的
  • 更改值 recyclerview.adapter 并将其保存到 mainactivity 中的 textview 中?

    当我更改 recyclerview adapter 的值时 我想将其值设置为 mainactivity 中的 textview 该怎么做 it will be like this 从我的 json 中检索回收数据 因此它将是随机的且数据很多
  • Flutter:如何导入现有的 Flutter 项目作为 gradle 项目

    如何导入现有的 Flutter 项目作为 gradle 项目 导入项目 向导要求 Gradle 主路径 我的系统中安装了 gradle 但这里需要设置什么 哪个路径 这是我正在尝试的 Error 我也遇到过这个问题 我必须在 Android
  • 使用 scikit-learn OneClassSVM 时获取每个新观察结果为异常值的概率

    我是 scikit learn 和 SVM 方法的新手 我的数据集与 scikit learn OneClassSVM 配合良好 可以检测异常值 我使用观察来训练 OneClassSVM 所有这些都是 内点 然后使用 Predict 对我的
  • WatchService 和 SwingWorker:如何正确执行?

    WatchService 听起来像是一个令人兴奋的想法 不幸的是 它似乎像教程 api 中警告的那样低级 而且并不真正适合 Swing 事件模型 或者我错过了一些明显的东西 非零概率 获取代码来自教程中的 WatchDir 示例 http
  • 在 Android 应用程序中播放 .wav/.mp3/.ogg 音频文件时出现延迟

    我编写了一个用于播放 20 毫秒音频剪辑 wav 格式 的应用程序 它只是重复播放声音片段 1000 次 但由于延迟 它的播放次数在 978 到 984 之间 我还尝试过其他音频格式 ogg mp3 等 我想减少延迟并获得可靠的号码 我在下
  • Android drawable-hdpi-night 文件夹

    Please help I am playing with small example of day night mode in Android So far so good I have 2 images of multiple size
  • 发送邮件到 mailtrap.io

    我正在使用 Laravel 5 1 我在我的申请中创建了联系页面 因此用户可以发送电子邮件 这里我使用了mailtrap io 当我创建时它就起作用了 我的意思是发送邮件到mailtrap io没有问题 但今天 当我再次检查时 它向我显示了
  • UIBezierPath 具有圆角边缘的三角形

    我设计了以下代码来生成UIBezierPath 该路径在CAShapeLayer掩盖一个UIView 请注意 视图的高度和宽度是可变的 这段代码生成一个具有锐利边缘的三角形 但我想使角变圆 我已经尝试过addArcWithCenter li
  • 为spark master指定local[n1,n2,n3]时,三个参数是什么?

    对于启动 Spark 我看到 master local n1 n2 n3 其中 n1 n2 和 n3 是整数 这些指的是什么 主规范解析为SparkContext createTaskScheduler https github com a
  • java中如何判断一个字符串是否至少包含一个字母?

    我想要这样的验证 我的字符串必须至少包含一个字母表 我正在使用以下内容 String s 111a11 boolean flag s matches a zA Z 旗帜给了我false虽然a在我的字符串中s 您可以使用 a zA Z wit
  • Git commit - 在有或没有消息文件的情况下处理类似的#注释

    我已经暂存了一个文件readme txt 调用时 git commit 它会打开我的编辑器并显示一条预定义的消息 在第一行中 我添加的只是为了强制 stackoverflow 显示此空行 Please enter the commit me
  • 将 javascript 函数应用于可拖动副本

    我想应用名为 copy contenue 的函数来更改 div 父 id 在我拖动原件后创建的副本上 但我的脚本更改了原件而不是副本我也尝试了 ui helper 来代替它 但没有任何反应 model 1 draggable connect
  • Android RecyclerView 中项目之间的空间过大

    我正在使用 RecyclerView 从每次在 EditText 中按 Enter 键时填充的对象列表中加载数据 但我面临的问题是 我添加的第一个项目显示正常 当我添加第二个项目时 它显示第一个和第二个项目之间有很大的差距 如果我继续添加项
  • jqgrid 掩码十进制数字单元格

    我的 jgrid 中有一个 float 类型的列 我想在用户输入单元格时屏蔽列单元格 例如 掩码应为 99999 99 当 9 0 9 之间的任何数字时 我希望该点左侧最多有 5 位数字 该点右侧最多有 2 位数字 并且可以输入少于最大值的
  • 由于 Cloud Foundry 上的 SSL 错误,JaxB 无法解组?

    我有一个 Web 应用程序 使用 thymeleaf Spring Boot AngularJS 和 Oracle sql Developer db 在本地 我能够连接并从 Oracle 获取值 但是当我将应用程序推送到 Cloud Fou