Простой туннель SSH в Java

Вы можете извлечь общую функциональность в отдельный модуль и сделать так, чтобы ваши приложения зависели от него:

  • my_portal
  • auth_module
  • profile_module
  • application1 (зависит от auth_module)
  • application2 (зависит от auth_module и profile_module)

Мне кажется, тот факт, что «классический» проект Django «содержит» приложения, которые он использует помешать вам увидеть картину - на самом деле, это не обязательно. Для проекта, в котором у вас будут какие-то подключаемые модули, я бы предложил организовать приложения в виде яиц и использовать zc.buildout + djangorecipe для управления всем.

Таким образом, вы сможете сохранить ваши модули в плоской одноуровневой структуре. Яйца имеют возможность указывать зависимости, поэтому, если вы установите application1 (см. Выше), auth_module будет установлен автоматически.

Также будет легко развернуть разные конфигурации на разных серверах. Предположим, у вас есть server1, на котором установлено application1, и server2, на котором установлены и application1, и application2 - вы можете просто иметь две конфигурации:

server1.cfg:

[buildout]
extends = base_deployment.cfg
eggs += application1

server2.cfg:

[buildout]
extends = base_seployment.cfg
eggs += application1
        application2

djangorecipe также позволяет вам указывать разные файлы настроек для каждой конфигурации компоновки, так что вы сможете добавлять необходимые биты в URL-адреса основного проекта и настройки установленных приложений.

Не говоря уже о том, что у вас также может быть отдельная конфигурация для конфигурации разработки (например, с установленными debug = True и Django Debug Toolbar).

15
задан Community 23 May 2017 в 10:29
поделиться

2 ответа

Well, as pointed out in the other question, JSch is indeed a great choice and has several examples here. The PortForwardingL.java class might be a good starting point.

23
ответ дан 1 December 2019 в 00:45
поделиться

Вы можете сделать это с помощью нескольких библиотек. Мне больше всего нравится библиотека ssh внутри пакета MindTerm,

http://linuxmafia.com/pub/java/ISNetworks-MindTerm-1.2.1-SCP3.tar.gz

Вы можете открыть туннельное соединение следующим образом:

  SSHSocketFactory fact = new SSHSocketFactory(sshHost, sshPort, new SSHPasswordAuthenticator(sshUser, sshPassword));

  sock = fact.createSocket(host, port);
20
ответ дан 1 December 2019 в 00:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: