Maison > Java > Est-il possible de récupérer des rôles depuis ServerWebExchange ?

Est-il possible de récupérer des rôles depuis ServerWebExchange ?

WBOY
Libérer: 2024-02-11 13:24:08
avant
369 Les gens l'ont consulté

L'éditeur php Baicao répond à votre question : "Est-il possible de récupérer des rôles depuis ServerWebExchange ?" Dans Spring WebFlux, les informations sur le rôle actuellement demandées peuvent être obtenues via l'objet ServerWebExchange. ServerWebExchange est l'une des classes principales du framework Spring WebFlux, qui représente le contexte des requêtes et des réponses HTTP. Grâce à l'objet ServerWebExchange, vous pouvez accéder à des informations telles que le chemin de la demande, les en-têtes de la demande et les paramètres de la demande. Pour obtenir des informations sur le rôle, vous pouvez obtenir l'objet utilisateur actuellement demandé via la méthode getUser() de l'objet ServerWebExchange pour obtenir les informations sur le rôle de l'utilisateur. De cette manière, vous pouvez effectuer le contrôle des autorisations et le traitement métier correspondants en fonction du rôle de l'utilisateur.

Contenu de la question

Je peux récupérer le nom principal de l'instance org.springframework.web.server.serverwebexchange.

exchange.getprincipal().subscribe(principal -> /* do something with it */);
Copier après la connexion

Puis-je également récupérer le rôle du directeur ? java.security.principal 类(与 userdetails 不同)仅提供名称字符串 (getname())

Cas d'utilisation : Disons que je souhaite écrire un gatewayfilter qui prend en compte le rôle de l'utilisateur actuel et modifie l'échange :

(exchange, chain) -> /* some filtering logic */
Copier après la connexion

Solution de contournement

Je l'ai converti en authentication。就我而言,主体实际上是 usernamepasswordauthenticationtoken,即 authenticationsous-type

((Authentication) principal).getAuthorities()
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal