Was ist der "Auftraggeber" in Spring Security?

9

Ich bin wirklich neu in Spring and Spring Security. Ich habe über Spring Security gelesen und es kam das Konzept von Prinzipal heraus, das der aktuell angemeldete Benutzer sein sollte. Aber was, wenn wir mehr als einen angemeldeten Benutzer haben? Also, meine Frage ist, was genau ist dann das Prinzip im Frühjahr Sicherheit?

Ich habe zum Beispiel dieses Tutorial gelesen:

  

Ссылка

und sie scheinen zu berücksichtigen, dass es nur einen aktuellen angemeldeten Benutzer gibt, was nicht oft der Fall ist.

Wie kann ich einen bestimmten Benutzer abrufen? Und wie kann ich zwischen Benutzern unterscheiden, die Anfragen ausführen?

    
nbro 28.05.2016, 12:59
quelle

1 Antwort

19

Der Prinzipal ist der aktuell angemeldete Benutzer. Sie rufen sie jedoch über den Sicherheitskontext ab, der an den aktuellen Thread gebunden ist. Daher ist sie auch an die aktuelle Anforderung und ihre Sitzung gebunden.

SecurityContextHolder.getContext() erhält intern die aktuelle SecurityContext -Implementierung über eine Variable ThreadLocal . Da eine Anfrage an einen einzelnen Thread gebunden ist, erhalten Sie den Kontext der aktuellen Anfrage.

Zur Vereinfachung könnten Sie sagen, dass der Sicherheitskontext in der Sitzung enthalten ist und Benutzer / Prinzipal und Rollen / Berechtigungen enthält.

  

Wie kann ich einen bestimmten Benutzer abrufen?

Sie nicht. Alle APIs ermöglichen den Zugriff auf den Benutzer & amp; Sitzung der aktuellen Anfrage. Lassen Sie Benutzer A einer von 100 derzeit authentifizierten Benutzern sein. Wenn A eine Anfrage an Ihren Server sendet, wird ihm ein Thread zugewiesen, um diese Anfrage zu bearbeiten. Wenn Sie dann SecurityContextHolder.getContext().getAuthentication() tun, tun Sie dies im Kontext dieses Threads. Standardmäßig haben Sie innerhalb dieses Threads keinen Zugriff auf den Kontext von Benutzer B, der von einem anderen Thread verarbeitet wird.

  

Und wie kann ich zwischen Benutzern unterscheiden, die Anfragen ausführen?

Das müssen Sie nicht, das macht der Servlet-Container für Sie.

    
Marcel Stör 28.05.2016, 13:03
quelle

Tags und Links