HSQLDB服务器ACL无效

问题描述 投票:0回答:1

我正在尝试在服务器模式下使用HSQLDB,但无法使ACL正常工作。

我使用此命令行启动了服务器(创建新数据库):

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

我可以使用HSQL数据库管理器连接到它并发出SHUTDOWN

接下来,我在~/workspaces/foo/db/fooserver.acl中创建了一个具有以下内容的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文件),其内容如下:

server.acl=traffserver.acl

但是,当我现在启动服务器时,我仍然可以连接到数据库。

HSQLDB版本是2.4.1,随Ubuntu 18.04一起提供。

我尝试过的其他方法:

  • This mailing list post建议使用server.acl_filepath而不是server.acl。行为仍然相同。
  • 我已经尝试将任一属性添加到fooserver.properties。仍然没有效果,当我停止服务器时,该属性将被删除。

我想念什么?

acl hsqldb
1个回答
0
投票

首先,如果使用的server.properties文件不在执行java命令的目录中,则应包括该属性文件的路径。

在相同情况下,在server.properties文件中,您需要使用成功测试的相同路径。所以应该是:

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

如果从包含两个文件的目录中发出java命令,则指定属性和acl文件会更容易。在这种情况下,您可以使用短文件名而不是完整路径。

请参见指南http://hsqldb.org/doc/2.0/guide/listeners-chapt.html

© www.soinside.com 2019 - 2024. All rights reserved.