2015-10-29 1 views
0

Недавно я писал проект Django с guacamole. Как я могу вставить окна guacamole на мою страницу Django?Как использовать guacamole в моем собственном проекте django

Я пытался использовать IFRAME (IP-Джанго является локальными: 8000 и IP из гуакамола является локальными: 8080, но пользователь должен ввести имя пользователя и пароль гуакамола даже он logined Джанго стр.

Каус страницы Django может получить имя пользователя и пароль гуакамоле с AJAX запроса, но мне кажется, что мы не можем манипулировать элементом внутреннего фрейма, чей IP отличается от внешнего веб-страницы.

Я использую urllib2 (с веб-сервера Django), чтобы отправить запрос на guacamole (localhost: 8080/guacamole/api/tokens с именем пользователя и паролем, только получите токен, я не знаю, как его использовать, и не будет работать.

Я пытался отправить запрос с помощью веб-браузера, но получить код ошибки XMLHttpRequest не может загрузить http://192.168.1.142:8080/guacamole/api/tokens. В запрошенном ресурсе нет заголовка «Access-Control-Allow-Origin». Поэтому исходный 'null' не допускается.

Я не хочу, чтобы пользователь вводил имя пользователя и пароль, который ужасен. Как я могу это исправить? Спасибо, что посмотрели.

ответ

2

Я пытался использовать IFRAME ...

я должен предостеречь против использования в iframe для этого. Это кажется привлекательным простым, но помимо проблем, с которыми вы столкнулись, трудно управлять фокусом клавиатуры браузера относительно iframe. Ваши пользователи будут смущены при вводе текста в Guacamole. Лучший способ встраивания Guacamole в другое приложение - использовать JavaScript и Java API от Guacamole: guacamole-common и guacamole-common-js соответственно (подробнее об этом ниже).

Я использую urllib2 (с веб-сервера Джанго), чтобы отправить запрос на гуакамоле (локальный: 8080/гуакамоле/апи/жетоны с именем пользователя и паролем, только получить маркер, я не знаю, как использовать его ни будет ли она работать

Вам не нужно взламывать свой путь вокруг системы аутентификации веб-приложение гуакамоле и т.д., чтобы встроить гуакамол в чем-то еще -.. проект гуакамоле предоставляет набор API-интерфейсов для этой цели Если вы хотите использовать Guacamole в другом проекте, идеальный способ сделать это - использовать его JavaScript API, используя Java API строго для туннельной части бэкэнд: http://guac-dev.org/doc/gug/writing-you-own-guacamole-app.html

Написание вашего приложения таким образом позволит вам определить, какой механизм аутентификации, если таковой имеется, будет применяться для туннелей, используемых клиентом JavaScript Guacamole, встроенным в ваше приложение, а также точно, как информация о конфигурации для каждого соединения полученным или полученным, и поскольку вы будете напрямую использовать JavaScript-клиент Guacamole JavaScript, не будет iframe.

Нет заголовка «Контроль доступа-Разрешить-Происхождение» присутствует на запрошенном ресурсе. Поэтому исходный 'null' не допускается.

Эта ошибка возникает из-за нарушения браузера same-origin policy. Поскольку вы сталкиваетесь с этим при смешивании «localhost» и частного IP (192.168.1.142), похоже, что это происходит в основном из-за того, как вы тестируете приложение, и я не уверен, столкнетесь ли вы с этой проблемой, как с вашим проект созревает. Если эта проблема продолжается, есть два основных способа решения проблем перекрестного происхождения:

  1. Proxy гуакамоле с использованием Apache или Nginx таким образом, чтобы он эффективно служил в том же домене, что и остальные приложения.
  2. Убедитесь, что вы устанавливаете crossDomain на номер true при создании своего Guacamole.HTTPTunnel.
+0

Благодарим за отзыв. API java и JavaScript API действительно предоставляют журнал функций для использования. Потому что я не могу писать Java, поэтому теперь я сотрудничаю с коллегой, который может писать java. Я думаю, мы сможем решить эту проблему вместе. – ramwin

+0

@ramwin Вы могли использовать guacamole в своем проекте? Если да, пожалуйста, поделитесь фрагментом кода, в котором вы подключаетесь к различным удаленным компьютерам из своего приложения. Спасибо –

+0

[Здесь] (https://guacamole.incubator.apache.org/doc/gug/guacamole-common.html) является официальной документацией. Поскольку код принадлежит моей компании, и я покинул эту компанию, мне неудобно раскрывать код. Я думаю, что документация достаточно ясна для разработчика. Постарайтесь следовать за ним, если у вас возникнут какие-либо вопросы, я буду рад спросить меня. – ramwin