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 サイトの他の関連記事を参照してください。