[工具] Ice注冊(cè)中心賬號(hào)密碼

Ice是個(gè)好東西,希望國(guó)內(nèi)能普及

? ? ? ? 我們?cè)诖罱↖ce 注冊(cè)中心后,使用圖形工具 【IceGrid Admin】 或者命令行工具【icegridadmin】登錄時(shí),默認(rèn)情況下,都是不需要賬號(hào)密碼,直接登錄,這在線上運(yùn)營(yíng)時(shí)是無(wú)法接受的。

下面是原始配置(參數(shù)Ice 官方demo:Documents\ZeroC\Ice-3.6.4-demos\cpp\IceGrid\customLocator)




IceGrid.Registry.AdminPermissionsVerifier=DemoIceGrid/NullPermissionsVerifier

IceGridAdmin.Username=foo

IceGridAdmin.Password=bar

雖然設(shè)置了賬號(hào)密碼,但是由于DemoIceGrid/NullPermissionsVerifier組件使用的是默認(rèn)組件,組件內(nèi)部沒(méi)有判斷邏輯,需要自己實(shí)現(xiàn),所以就沒(méi)有賬號(hào)密碼功能。只會(huì)在操作的配置時(shí),留下必要的痕跡。



我們看下代碼是如何實(shí)現(xiàn)


邪惡的分割線

==================================================================

class GLACIER2_API PermissionsVerifier : virtual public ::Ice::Object

{

? ? virtual bool checkPermissions(const ::std::string&, const ::std::string&, ::std::string&, const ::Ice::Current& = ::Ice::Current()) const = 0;

};

class NullPermissionsVerifier : public Glacier2::PermissionsVerifier

{

public:

? ? bool checkPermissions(const string&, const string&, string&, const Current&) const

? ? {

? ? ? ? return true;

? ? }

};

SessionPrx

RegistryI::createSession(const string& user, const string& password, const Current& current)

{

? ? try

? ? {

? ? ? ? string reason;

? ? ? ? if(!_clientVerifier->checkPermissions(user, password, reason, current.ctx))

? ? ? ? {

? ? ? ? ? ? PermissionDeniedException exc;

? ? ? ? ? ? exc.reason = reason;

? ? ? ? ? ? throw exc;

? ? ? ? }

? ? }

}

class RegistryI : public Registry

{

? ? Glacier2::PermissionsVerifierPrx _clientVerifier;

};

==================================================================


可以看到,checkPermissions函數(shù)本身并未執(zhí)行任何操作。在這樣的配置下,需要使用自己開(kāi)發(fā)的組件替換NullPermissionsVerifier,才能實(shí)現(xiàn)限制賬號(hào)密碼登錄。


下一篇文章將介紹如何使用?AdminCryptPasswords 配置,實(shí)現(xiàn)Ice注冊(cè)中心的賬號(hào)密碼登錄。



如果覺(jué)得我的文章對(duì)您有用,請(qǐng)隨意打賞。您的支持將鼓勵(lì)我繼續(xù)創(chuàng)作!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容