Получение аутентификации базы данных для работы на Apache Guacamole - PullRequest
0 голосов
/ 04 августа 2020

Получил Apache Гуакамоле и Tomcat, работающие между двумя ноутбуками и P C в локальной сети.

Однако всегда обновлял сведения о пользователях и подключениях через сопоставление пользователей. xml

Затем я решил настроить проверку подлинности базы данных для упрощения изменения сопоставления пользователей,

настройка и активный SQLServer, MYSQL, а теперь PostGreSQL, все они активны и работают (не одновременно, попробовал один за другим, а затем удалил), однако данные для входа в систему guacamole остаются прежними и, похоже, на них не влияют изменения в guacamole.properties.

Вот мой последний файл guacamole.properties для справки. (PostGreSQL Версия atm)

guacd-hostname:localhost
guacd-port: 4822
user-mapping:/etc/guacamole/user-mapping.xml
auth-provider:
net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider
# MySQL properties
#mysql-hostname: localhost
#mysql-port: 3306
#mysql-database: guacamole_db
#mysql-username: SHRDC
#mysql-password: Shrdc_1234
#mysql-user-required: true
# PostgreSQL properties
postgresql-hostname: localhost
postgresql-port: 5432
postgresql-database: guacamole_db
postgresql-username: SHRDC
postgresql-password: Shrdc_1234
postgresql-user-required: true

Я чувствую, что это какой-то соединитель, поэтому проблема с драйвером не распознается. Что-то изменить в / lib или / extensions?

Для справки, драйвер авторизации и коннектор авторизации, которые я использую в настоящее время:

in / extensions: guacamole-auth-jdb c - postgresql .jar (раньше был guacamole-auth-jdb c - postgresql -1.2.0.jar, прежде чем я переименовал его, пытаясь что-то сделать)

in / lib: postgresql -42.2. 14.jar

все шаги выполняются в соответствии с: https://guacamole.apache.org/doc/gug/jdbc-auth.html

Хотелось бы получить отзывы, застрял, пытаясь заставить аутентификацию БД работать в течение недели плюс сейчас!

С уважением

1 Ответ

0 голосов
/ 10 августа 2020

Я столкнулся с той же проблемой, но в моей настройке используется docker. В моем случае есть расхождения между фактическим кодом и документацией. Я объясню, как найти причину root, поскольку она похожа.

  1. Включить отладку Logback

Поскольку вы устанавливаете вручную (без использования контейнера docker) . Скорее всего, вы точно знали, где находится GUACAMOLE_HOME. Напоминаю, что по умолчанию он находится в /etc/guacamole, но если у вас есть /home/$USER/.guacamole, он будет использоваться вместо него.

Добавьте logback.xml, как описано здесь: https://guacamole.apache.org/doc/gug/configuring-guacamole.html в вашем GUACAMOLE_HOME директории

См. Вывод вашей каталины

Новые настройки отладки будут выводить все сообщения отладки. Если нет сообщения [DEBUG], значит, вы поместили logback.xml в неправильное место.

После того, как у вас есть выходной поток DEBUG, посмотрите важные выходные данные, такие как GUACAMOLE_HOME, который в настоящее время используется, AuthBinding, который в настоящее время б / у, et c. Это когда запускается catalina.

Например, это отрывок из моего журнала:

19:23:08.933 [localhost-startStop-1] DEBUG o.a.g.extension.ExtensionModule - Loading extension: "guacamole-auth-jdbc-postgresql-1.2.0.jar"
19:23:08.973 [localhost-startStop-1] DEBUG o.a.g.extension.ExtensionModule - [0] Binding AuthenticationProvider "org.apache.guacamole.auth.postgresql.PostgreSQLAuthenticationProvider".
19:23:08.980 [localhost-startStop-1] INFO  o.a.g.environment.LocalEnvironment - GUACAMOLE_HOME is "/root/.guacamole".
19:23:10.150 [localhost-startStop-1] DEBUG o.a.g.extension.ExtensionModule - [1] Binding AuthenticationProvider "org.apache.guacamole.auth.postgresql.PostgreSQLSharedAuthenticationProvider".
19:23:10.207 [localhost-startStop-1] DEBUG o.a.g.e.LanguageResourceService - Merged strings with existing language: "es"
19:23:10.213 [localhost-startStop-1] DEBUG o.a.g.e.LanguageResourceService - Merged strings with existing language: "ru"
19:23:10.216 [localhost-startStop-1] DEBUG o.a.g.e.LanguageResourceService - Merged strings with existing language: "de"
19:23:10.222 [localhost-startStop-1] DEBUG o.a.g.e.LanguageResourceService - Merged strings with existing language: "fr"
19:23:10.227 [localhost-startStop-1] DEBUG o.a.g.e.LanguageResourceService - Merged strings with existing language: "ja"
19:23:10.233 [localhost-startStop-1] DEBUG o.a.g.e.LanguageResourceService - Merged strings with existing language: "en"
19:23:10.234 [localhost-startStop-1] INFO  o.a.g.extension.ExtensionModule - Extension "PostgreSQL Authentication" loaded.

Обратите внимание, что сначала должна быть загружена привязка postgresql auth.

Если такого вывода нет, значит Tomcat даже не нашел ваши настройки. Если он нашел настройки, но не смог загрузить привязки, то Tomcat не смог найти вашу привязку.

Это пример журнала, если такие вещи происходят (запуск catalina работает нормально, но вход через панель управления guacamole будет извергать эта ошибка).

### Error querying database.  Cause: java.sql.SQLException: Error setting driver on UnpooledDataSource. Cause: java.lang.ClassNotFoundException: org.postgresql.Driver
### The error may exist in org/apache/guacamole/auth/jdbc/user/UserMapper.xml
### The error may involve org.apache.guacamole.auth.jdbc.user.UserMapper.selectOne
### The error occurred while executing a query
### Cause: java.sql.SQLException: Error setting driver on UnpooledDataSource. Cause: java.lang.ClassNotFoundException: org.postgresql.Driver
19:44:44.511 [http-nio-8080-exec-12] DEBUG o.a.g.rest.RESTExceptionMapper - Unexpected error in REST endpoint.
org.apache.ibatis.exceptions.PersistenceException:
### Error querying database.  Cause: java.sql.SQLException: Error setting driver on UnpooledDataSource. Cause: java.lang.ClassNotFoundException: org.postgresql.Driver
### The error may exist in org/apache/guacamole/auth/jdbc/user/UserMapper.xml
### The error may involve org.apache.guacamole.auth.jdbc.user.UserMapper.selectOne
### The error occurred while executing a query
### Cause: java.sql.SQLException: Error setting driver on UnpooledDataSource. Cause: java.lang.ClassNotFoundException: org.postgresql.Driver

Наконец, если он нашел ваши настройки, но не нашел привязку guacamole-auth- postgresql, он выдаст этот журнал:

19:47:49.654 [http-nio-8080-exec-15] DEBUG o.a.g.extension.ExtensionModule - [0] Binding AuthenticationProvider "org.apache.guacamole.auth.file.FileAuthenticationProvider".

Уведомление что теперь привязка FileAuth загружается первой (она не обнаруживает привязку postgres jdb c).

Основываясь на информации журнала, систематически пытайтесь найти root причину

Это может быть просто неправильно GUACAMOLE_HOME. Например, вы отредактировали /etc/guacamole/guacamole.properties, но Tomcat фактически загрузил /home/$USER/.guacamole/guacamole.properties. Или, может быть, ваша структура каталогов неверна.

Это мое дерево каталогов, если вы хотите сравнить:

root@guacamole-7988d57c8d-nwfk7:~/.guacamole# tree .
.
├── extensions
│   ├── guacamole-auth-jdbc-postgresql-1.2.0.jar -> /opt/guacamole/postgresql/guacamole-auth-jdbc-postgresql-1.2.0.jar
│   └── lost+found
├── guacamole.properties
├── lib
│   └── postgresql-9.4-1201.jdbc41.jar -> /opt/guacamole/postgresql/postgresql-9.4-1201.jdbc41.jar
└── logback.xml

3 directories, 4 files
Проверьте, действительно ли вы можете получить доступ к базе данных

из машины, на которой работает гуакамоле (кота). Убедитесь, что вы можете получить доступ к своей базе данных с указанными учетными данными. Если вы используете postgres, попробуйте получить к нему доступ через psql. Просто чтобы убедиться, что у вас есть соответствующие права доступа к базе данных

Убедитесь, что драйвер jdb c, который вы используете, соответствует правильной Java версии.

Вероятно, документы были достаточно подчеркнуты. Но, может быть, ты сможешь проверить еще раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...