Quel est le "principal" de Spring Security?
Je suis vraiment nouveau dans le Ressort et la Sécurité. J'ai lu sur le Printemps de Sécurité et il est venu le concept de principalqui devrait être l'utilisateur actuellement connecté. Mais que faire si nous avons plus d'un utilisateur actuellement connecté? Donc, ma question est, qu'est-ce exactement est alors le principal dans le ressort de sécurité?
J'ai lu par exemple ce tutoriel:
http://www.mkyong.com/spring-security/get-current-logged-in-username-in-spring-security/
et ils semblent prendre en compte qu'il y a juste un utilisateur actuellement connecté, ce qui n'est pas souvent le cas.
Comment puis-je récupérer un utilisateur spécifique? Et comment puis-je différencier les utilisateurs qui sont en train de faire des demandes?
source d'informationauteur nbro
Vous devez vous connecter pour publier un commentaire.
Le principal est l'utilisateur actuellement connecté. Cependant, vous le récupérer par le contexte de sécurité qui est lié à la thread en cours et en tant que tel, il est aussi lié à la demande actuelle et de sa session.
SecurityContextHolder.getContext()
en interne obtient le courantSecurityContext
mise en œuvre par le biais d'unThreadLocal
variable. Parce qu'une demande est lié à un seul thread ainsi, vous obtenez le contexte actuel de la demande.Pour simplifier, on pourrait dire que le contexte de sécurité est dans la session et contient de l'utilisateur principal, et des rôles et des autorités.
Vous n'avez pas. Toutes les Api sont conçus pour permettre l'accès de l'utilisateur & session de la demande actuelle. Permettre à l'utilisateur d'Un être l'un des 100 actuellement les utilisateurs authentifiés. Si Un émet une requête à l'encontre de votre serveur, il va allouer un thread pour traiter cette demande. Ensuite, si vous ne
SecurityContextHolder.getContext().getAuthentication()
vous de le faire dans le contexte de ce fil. Par défaut à partir de l'intérieur de ce fil, vous n'avez pas accès au contexte de l'utilisateur B qui est traitée par un thread différent.Vous n'avez pas à, c'est ce que le conteneur de Servlet fait pour vous.