ホームページ  >  記事  >  ServerWebExchange からロールを取得することはできますか?

ServerWebExchange からロールを取得することはできますか?

WBOY
WBOY転載
2024-02-11 13:24:08306ブラウズ

php エディター Baicao は、「ServerWebExchange からロールを取得することは可能ですか?」という質問に答えます。答えは「はい」です。 Spring WebFlux では、現在要求されているロール情報は ServerWebExchange オブジェクトを通じて取得できます。 ServerWebExchange は Spring WebFlux フレームワークのコア クラスの 1 つで、HTTP リクエストとレスポンスのコンテキストを表します。 ServerWebExchange オブジェクトを通じて、リクエスト パス、リクエスト ヘッダー、リクエスト パラメーターなどの情報にアクセスできます。ロール情報を取得するには、ServerWebExchange オブジェクトの getUser() メソッドを使用して現在要求されているユーザー オブジェクトを取得し、ユーザーのロール情報を取得します。これにより、ユーザーのロールに応じた権限制御や業務処理を行うことができます。

質問の内容

プリンシパル名は、org.springframework.web.server.serverwebexchange インスタンスから取得できます。

リーリー

プリンシパルの役割も取得できますか? java.security.principal クラス (userdetails とは異なります) は、名前文字列 (getname())

のみを提供します。

ユースケース: 現在のユーザーのロールを考慮して交換を変更する gatewayfilter を作成したいとします:

exchange.getprincipal().subscribe(principal -> /* do something with it */);

回避策

これを authentication にキャストしました。私の場合、プリンシパルは実際には usernamepasswordauthenticationtoken であり、これは authentication サブタイプ

です。 リーリー

以上がServerWebExchange からロールを取得することはできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。