Ich muss Benutzersitzung ungültig machen (oder treten). Die Anwendung beschränkt die Benutzeranmeldung nur auf einen Benutzer pro Container.Invalidate Federsicherheitssitzung
Ich versuche removeSessionInformation aus der Sitzungsregistry aufzurufen, um den Benutzer zu entsperren. Der andere Benutzer kann sich also mit dem Benutzernamen der geklickten Sitzung anmelden.
aber SessionContextHolder bei diesem Benutzer, der getreten wurde, ist immer noch. Daher haben sie immer noch die gleiche Berechtigung, auf die geschützte Seite zuzugreifen.
wie Principal von SessionContextHolder aus angegebenen Sitzungsregistrierungsinformationen zu entwerten oder zu entfernen?
ps: In meiner alten Anwendung gebe ich eine Variable in UserDomain (UserDetails), die HttpSession halten. und wenn sie den Benutzer treten müssen, mache ich nur HttpSession von der angegebenen Benutzerdomäne ungültig. Das weiß ich aber nicht, wie ich es im Frühling machen soll (es ist eher so, Principal von SessionContextHolder als HttpSession zu entfernen). Die Implementierung ist fast identisch mit der von SessionRegistryImpl im Frühjahr.
Diese Antwort ist korrekt, stellen Sie sicher, dass Ihre Websitzung ungültig ist. –
hallo Brian, ich denke, Ihre Antwort nur "SecurityContextHolder" der aktuellen Logging-Benutzersitzung ungültig machen (oder entfernen). Was ich brauche, ist den 'SecurityContextHolder' einer anderen Benutzersitzung zu entfernen. Können wir es bei Sping tun? –
dies ist nicht für andere Benutzer – z0mb1ek