2017-10-04 3 views
0

Ich habe ein Geode-System mit Locator, Server, 2 lokalen nativen Clients, einem Remote-Client und HTTPS-REST-Clients.Geode-Authentifizierung erzeugt Handshake vom Server abgelehnt

Jetzt müssen wir die REST-Clients authentifizieren, damit sie Benutzernamen- und Kennwortprüfungen für REST-Aktionen einschließen, was bedeutet, dass die Authentifizierung here und here eingerichtet wird. Wir richten eine security.json ein und die ExampleSecurityManager behandelt die authentifizierten REST HTTPS-Anforderungen in Ordnung.

Das Einrichten der Authentifizierung bedeutet, dass lokale und ferne native Clients, die TCP verwenden, ebenfalls eine Authentifizierung erfordern. Also implementierte ich die AuthInitialize example lokal und habe diese Clients mit dem Server verbinden, und sie laufen auch gut.

Allerdings gibt es ein Problem, das schon nach wenigen Minuten die Clients (lokal und remote) verlieren ihre Verbindungen mit dem Geode-Server mit dem (Client) Fehler:

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

stelle ich die Server-Logs In den feinsten und die Warnungen zu erhalten, dass:

[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

Dann viel attempting to get session; create = false; session is null = true; session has id = false

und dann 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].

und schließlich

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

Grundsätzlich diese Situation wiederholt sich, und dann die Zeichnungsereignishandler scheitern, weil sie erhalte keine Ereignisbenachrichtigungen.

Wenn ich die Geode Server-Protokolle an info reduzieren, so wird die Warnung

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

wiederholt mehrmals ...

Alle Hinweise bitte? Gibt es eine Möglichkeit, die REST-Authentifizierung zu aktivieren, ohne die native Client-TCP-Authentifizierung zu aktivieren? DANK

Antwort

1

Für Ihre letzte Frage: "Gibt es eine Möglichkeit, REST-Authentifizierung zu aktivieren, ohne die native Client-Authentifizierung zu aktivieren", ist die Antwort nein. Wenn Sie Sicherheit in Ihrem Cluster eingerichtet haben, sollte dies Ihre Daten vor allen Kommunikationskanälen schützen. Wenn wir Ihnen erlauben, einen zu deaktivieren, würde das Ihren Cluster angreifbar machen.

Für die Fehlermeldungen, die Sie sehen, sieht es so aus, als würde die Shiro-Sitzung auslaufen. Welche Version von Geode verwenden Sie? Wir haben das Session-Timeout-Problem vor einiger Zeit behoben.

+0

danke könnte es sein, es gibt eine Möglichkeit, Shiro "erinnere mich an" und dann die Sitzung würde keine Zeit? Die Geode-Version ist 1.2.0, so dass wir auf 1.2.1 upgraden können und schließlich, während ich den Punkt über Sicherheit verstehe, gibt es einen Unterschied zwischen HTTPS-Rest-Clients außerhalb des Netzwerks und TCP-nativen Clients innerhalb des Netzwerks.Wir kennen nicht alle ersten, aber wir kennen letztere als gesichert im Netzwerk. Ich denke, kann sich auf Netzwerksicherheit verlassen? Hmmm – rupweb

+1

Wenn es 1.2.0 ist, das Sie verwenden, sollte es bereits das beheben, und dies wird kein Timeout-Problem sein. Etwas anderes muss weitergehen. Hast du es mit einem Java-Client versucht? – jliao

+1

sieht es so aus, als ob der Client bereits einen aktiven Proxy im Server hat und versucht, einen neuen zu erstellen. – jliao

Verwandte Themen