我有一个Geode系统,包括定位器,服务器,2个本地本地客户端,远程客户端和HTTPS REST客户端。
我们现在需要进一步验证REST客户端,以包括对REST操作的用户名和密码检查,这意味着设置身份验证here和here。我们设置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 Server日志缩减为info,则警告
Unsuccessfully registered client with identifier identity(0.0.0.0(MyGeodeClient:3116:loner):2:GFNative_k350A9imTd3116:MyGeodeClient,connection=1
重复多次......
请指点什么?有没有办法在不启用本机客户端TCP身份验证的情况下启用REST身份验证?致谢
答案 0 :(得分:1)
对于您的上一个问题:&#34;有没有办法启用REST身份验证而不启用本机客户端身份验证&#34;,答案是否定的。在群集中设置安全性后,它应该保护您的数据不受所有通信通道的影响。如果我们允许您禁用一个,那么您的群集将容易受到攻击。
就您看到的错误消息而言,看起来shiro会话已超时。您使用的是哪个版本的Geode?我们已经修复了会话超时问题。