ACL сервера HSQLDB не работает - PullRequest
0 голосов
/ 05 апреля 2020

Я пытаюсь использовать HSQLDB в режиме сервера, но не могу заставить ACL работать.

Я запустил сервер (создавая базу данных fre sh) с этой командной строкой:

java -cp $CLASSPATH:/usr/share/java/hsqldb.jar org.hsqldb.server.Server --database.0 file:~/workspaces/foo/db/fooserver --dbname.0 fooserver

Я могу подключиться к нему с помощью H SQL Database Manager и выдать SHUTDOWN.

Затем я создал файл ACL в ~/workspaces/foo/db/fooserver.acl со следующим содержимым:

deny 127.0.0.1

Я успешно протестировал его с java -cp $CLASSPATH:/usr/share/java/hsqldb.jar org.hsqldb.server.ServerAcl ~/workspaces/foo/db/fooserver.acl, и он сообщает мне, что 127.0.0.1 отказано в доступе.

Теперь я создал ~/workspaces/foo/db/server.properties (так как файла server.properties еще не было) со следующим content:

server.acl=traffserver.acl

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

Версия HSQLDB 2.4.1, поставляется с Ubuntu 18.04.

Другие вещи, которые я пробовал:

  • В этом списке рассылки предлагается использовать server.acl_filepath вместо server.acl. Поведение остается прежним.
  • Я попытался добавить любое свойство в fooserver.properties. По-прежнему безрезультатно, и свойство останавливается при остановке сервера.

Чего мне не хватает?

1 Ответ

1 голос
/ 06 апреля 2020

Прежде всего, если вы используете файл server.properties, который не находится в каталоге, где вы выполняете команду java, вы должны включить путь к этому файлу свойств.

В том же самом Сценарий, в файле server.properties, вы должны использовать тот же путь, который вы успешно протестировали. Поэтому должно быть:

server.acl=~/workspaces/foo/db/fooserver.acl

Было бы проще указать свойства и файлы acl, если вы введете команду java из каталога, содержащего оба файла. В этом случае вы можете использовать короткое имя файла вместо полного пути.

См. Руководство http://hsqldb.org/doc/2.0/guide/listeners-chapt.html

...