我有一個最近的zookeeper構建版本(版本= 3.4.3-1240972,構建於2012年6月2日10:48 GMT),並且無法強制SASL在所有客戶端連接。如何在所有Zookeeper連接上強制執行SASL
使用釋放本地的conf /目錄下,我有以下的配置(在Ubuntu 12.04上運行):
的conf/zoo.cfg
tickTime=2001
initLimit=10
syncLimit=5
dataDir=/tmp/zookeeper
clientPort=2181
authProvider.1=org.apache.zookeeper.server.auth.SASLAuthenticationProvider
的conf /的Jaas.conf
Server {
org.apache.zookeeper.server.auth.DigestLoginModule required
user_super="1adminsecret";
};
Client {
org.apache.zookeeper.server.auth.DigestLoginModule required
username="super"
password="1adminsecret";
};
CONF/java.env
export JVMFLAGS="-Djava.security.auth.login.config=`pwd`/conf/jaas.conf"
當我從zkCli.sh腳本連接,它將正常權威性,並改變Jaas.conf檔案將導致其無法查詢。這是預期的行爲。
然而,當我使用紅寶石 「動物園管理員」 的寶石,並運行(與IRB):
require 'zookeeper'
z = Zookeeper.new("localhost:2181")
z.get_children(:path => "/")
z.create(path:'/asdf', data:'test')
它返回的結果正常。如果我要求SASL登錄,那麼Ruby如何繞過安全性。我知道這不僅僅是一個讀寫問題,因爲我也可以創建密鑰。
僅供參考,我使用以下資源來配置SASL:https://github.com/ekoontz/zookeeper/wiki和https://cwiki.apache.org/ZOOKEEPER/zookeeper-and -sasl.html – 2012-07-10 17:33:47
你已經創建了一個java.env文件,你如何從zkCli.sh讀取該文件? – cheloncio 2016-04-07 16:59:47