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

如何从spring boot应用中隧道pcf服务

司寇琨
2023-03-14

我在pivotal cloud Foundry上部署了一个Spring Boot应用程序。我正试图从Spring Boot应用程序中通过隧道(cf ssh)到pcf中的应用程序,但找不到任何api或客户端库来实现它。

通道PCF:cf ssh-n-t-l 10001:localhost:10001 ms name的实际cli命令

欢迎任何建议。

共有1个答案

漆雕奇逸
2023-03-14

如果您试图编写与cf ssh命令相同的Java代码,那么这应该是可能的。这是标准的SSH,但是凭据是短暂的,所以技巧是生成您可以在应用程序中使用的凭据。

下面是使用标准SSH/SCP/SFTP客户端的示例,注意SSH.bosh-lite.com将是您的SSH域,您可以从cf curl/v2/info中看到:

$ ssh -p 2222 cf:$(cf app app-name --guid)/0@ssh.bosh-lite.com
$ scp -P 2222 -oUser=cf:$(cf app app-name --guid)/0 my-local-file.json ssh.bosh-lite.com:my-remote-file.json
$ sftp -P 2222 cf:$(cf app app-name --guid)/0@ssh.bosh-lite.com

https://github.com/cloudfoundry/diego-ssh#cloud-foundry-via-cloud-controller-and-uaa

也就是说,您应该能够对任何标准SSH Java库执行类似的操作。

如前所述,诀窍在于获取凭据。用户名的格式为cf:application-guid/app-instance-number,这很容易,但密码需要使用cf ssh-code或对UAA API的类似调用生成。

ex:curl-vv-h'accept:application/json'-h“authorization:$(cf oauth-token)”“https://uaa.run.pivotal.io/oauth/authorize?client_id=ssh-proxy&response_type=code”

此示例使用curl发送请求,使用cf oauth-token为登录用户获取有效的Oauth2承载令牌。您可以通过多种方式获得有效的承载令牌,包括直接调用API或使用cf-java-client。它只需要是应该执行SSH操作的用户的有效令牌(即运行cf SSH)。

希望有帮助!

 类似资料:
  • 我正在开发一个将部署在pivotal cloud foundry中的Spring Boot应用程序,它需要读取/侦听来自Websphere MQ的消息。有办法做到这一点吗?

  • 我有一个控制器,它在上接受一个名为的类。控制器方法看起来像这样: 第一控制器: 属性之一的类型为。 现在,我正在尝试添加某种包装器控制器(将在另一台服务器上运行),它也接受,并将请求转发给第一个控制器: 第二(包装)控制器: 当我向第一个控制器发送请求时: 无法写入JSON:找不到java类的序列化程序。伊奥。FileDescriptor,并且没有发现创建BeanSerializer的属性(为了避

  • 并非您希望公开的所有服务都是基于HTTP或TLS的。 ngrok TCP隧道允许您公开通过TCP运行的任何联网服务。这通常用于公开SSH,游戏服务器,数据库等。启动TCP隧道很容易。 公开在端口1234上运行的基于TCP的服务 ngrok tcp 1234 例子 公开侦听默认端口的SSH服务器 ngrok tcp 22 暴露一个Postgres服务器侦听默认端口 ngrok tcp 5432 暴露

  • HTTPS隧道使用ngrok.com证书终止ngrok.com服务器上的所有TLS(SSL)流量。 对于生产级服务,您需要使用自己的TLS密钥和证书对您的隧道流量进行加密。 ngrok使这个特别容易与TLS隧道。 将TLS流量转发到端口443上的本地HTTPS服务器 ngrok tls -subdomain=encrypted 443 一旦你的隧道运行,尝试访问它与curl。 curl --ins

  • 自定义子域名称 ngrok为它为您打开的HTTP隧道分配随机十六进制名称。 这对于一次性个人用途是可以的。 但是,如果您在黑客马拉松上显示URL或与第三方Webhook集成,则如果隧道名称更改或难以阅读,可能会令人沮丧。 您可以使用-subdomain开关为隧道URL指定自定义子域。 示例:打开具有子域“inconshreveable”的隧道 ngrok http -subdomain=incon

  • 将amazon rds mysql数据库与部署在PCF(Pivotal Cloud Foundry)上的spring boot应用程序连接需要任何特殊配置吗。当我试图通过自动配置绑定时,我会收到一个错误,说明无法获取jdbc连接。