HTTP-Anfrage von einem Browser nach einem Sitzungszeitlimit

8

Ich habe eine Benutzeroberfläche, die von zwei HTTP-Servern bedient wird. Daher muss ich die HTTP-Sitzung von beiden Servern reinigen. Es ist einfach für den Abmelde-Anwendungsfall, aber nicht klar für mich, wie es für den Anwendungsfall der Zeitüberschreitung zu tun ist.

Die Benachrichtigung auf der Serverseite ist über HttpSessionBindingListener möglich Benachrichtigung erhalten, wenn eine HTTP-Sitzung beschränkt / unbegrenzt ist . Aber wie kann ich die Client-Site darüber informieren? Ich muss die Anfrage von einem Browser an den zweiten Server senden, um einen Sitzungscookie auf dem zweiten Server zu löschen, und daher kann ich keine Anfrage von der Serverseite senden.

Hinzugefügt

Ein Server ist Tomcat 8, der zweite Server ist Apache HTTPD Server. Ich möchte es via UI-Callback lösen (vom Tomcat HTTP-Servlet-Server).

    
Michael 19.09.2016, 15:11
quelle

2 Antworten

4

Aus der Apache HTTPD (Apache) -Dokumentation:

Integration von Sitzungen mit externen Anwendungen

Ссылка

  • Sie können Ihr eigenes Modul schreiben, dann können Sie mit diesem Modul Sitzungen löschen, nachdem Tomcat sie für entbehrlich gehalten hat.
  • Sie können eine Sitzungsdatenbank sowohl für Tomcat als auch für Apache verwenden (z. B. in MySQL), beide Server würden Benutzer damit prüfen. Das Löschen einer Sitzung würde nur das Löschen des Eintrags aus der Datenbank erfordern.
  • Als eigenständige Anwendung: Wie die Dokumentation sagt, liegt es an Ihnen, die Sitzungsdateien zu finden und darauf zuzugreifen, sie zu brechen und zu bearbeiten. Wenn sich Tomcat und Apache auf verschiedenen Computern befinden, könnten Sie einen Agenten mit einem Listener in der Apache-Box haben und Tomcat den Agenten bitten, die Sitzungsdaten zu löschen.
  • Apache geht normalerweise mit PHP, und es gibt auch Datenbanken um. Beide könnten ihre eigenen Sitzungen haben, um damit umzugehen.
gia 27.09.2016 06:00
quelle
0

Es gibt ein paar Ansätze, die Sie ausprobieren können.

  1. Wie von @ Kwebble , rufen Sie beim Tomcat-Sitzungszeitlimit Ihren Apache-Server auf und bitten Sie ihn, sich abzumelden / die Sitzung zu verwerfen.

  2. Wenn die Sitzung in Tomcat ausfällt, wird die Benutzeroberfläche darüber informiert, wenn sie eine Anfrage stellt. Rufen Sie nun von der Benutzeroberfläche aus den Apache-Server auf, um sich abzumelden / ungültig zu machen.

Meritor 28.09.2016 23:28
quelle