2017-10-04 127 views
0

我有一個Geode系統與定位器,服務器,2本地本機客戶端,遠程客戶端和HTTPS REST客戶端。Geode身份驗證產生服務器拒絕握手

我們現在需要進一步驗證REST客戶端以在REST操作中包含用戶名和密碼檢查,這意味着要設置驗證herehere。我們設置了security.json,並且ExampleSecurityManager正確處理了經過驗證的REST HTTPS請求。

設置身份驗證意味着使用TCP的本地和遠程本地客戶端也需要身份驗證。所以我在本地實施了AuthInitialize example,並讓這些客戶端連接到服務器,並且它們也運行良好。

然而,有一個問題,幾分鐘後客戶端(包括本地和遠程)丟失其連接到的Geode服務器與(客戶端)錯誤:

Handshake rejected by server[#.#.#.#:40404]: A previous connection attempt from this client is still being processed: identity(0.0.0.0(MyGeodeClient:3116:loner)

我設置的服務器日誌以最優秀的,並得到了警告,:

[finest BST GeodeServer <ServerConnection on port 40404 Thread 24> tid=0xa4] Server connection from [identity(0.0.0.0(MyGeodeClient:3116:loner):2:GFNative_k350A9imTd3116:MyGeodeClient,connection=1; port=57098] received USER_CREDENTIAL_MESSAGE with txid -1

ClientHealthMonitor: Received ping from client with member id identity(0.0.0.0(MyGeodeClient:3116:loner):2:GFNative_k350A9imTd3116:MyGeodeClient,connection=1

後來很多attempting to get session; create = false; session is null = true; session has id = false

然後This org.apache.shiro.mgt.DefaultSecurityManager instance does not have a [org.apache.shiro.mgt.RememberMeManager] instance configured. RememberMe services will not be performed for account [test].

最後

A previous connection attempt from this client is still being processed: identity(0.0.0.0(MyGeodeClient:3116:loner):2:GFNative_k350A9imTd3116:MyGeodeClient,connection=1

[warning BST GeodeServer <Handshaker /#.#.#.#:40404 Thread 0> tid=0x53] CacheClientNotifier: Unsuccessfully registered client with identifier identity(0.0.0.0(MyGeodeClient:3116:loner):2:GFNative_k350A9imTd3116:MyGeodeClient,connection=1

基本上這種情況重演,然後訂閱事件處理失敗,因爲他們不要收到事件通知。

如果我減少的Geode服務器日誌信息,然後警告

Unsuccessfully registered client with identifier identity(0.0.0.0(MyGeodeClient:3116:loner):2:GFNative_k350A9imTd3116:MyGeodeClient,connection=1

重複無數次...

任何指針嗎?有沒有辦法啓用REST身份驗證而不啓用本地客戶端TCP身份驗證?謝謝

回答

1

對於你的最後一個問題:「是否有一種方法來啓用REST身份驗證,而不啓用本地客戶端身份驗證」,答案是否定的。當您在羣集中設置安全性時,它應該保護您的數據免受所有通信渠道的影響。如果我們允許您禁用一個,那麼會讓您的羣集容易受到攻擊。

只要你看到的錯誤信息,它看起來像shiro會話超時。你正在使用哪個版本的Geode?我們前段時間修復了會話超時問題。

+0

謝謝有沒有辦法設置Shiro「記住我」,然後會話不會超時? Geode的版本是1.2.0,所以我們可以升級到1.2.1,最後當我得到關於安全的觀點時,網絡外部的HTTPS休息客戶端和網絡內部的TCP本地客戶端之間有一點區別。我們不知道所有的前者,但我們確實知道後者在網絡中是安全的。我猜可以依靠網絡安全嗎?嗯 – rupweb

+1

如果它是1.2.0你正在使用,它應該已經有了這個修復,這不會是超時問題。還有其他一些事情正在發生。你用java客戶端嘗試過嗎? – jliao

+1

它看起來像客戶端已經在服務器中有一個活動的代理,並正在嘗試創建一個新的。 – jliao