クラス ServerHttpSecurity.OidcLogoutSpec.BackChannelLogoutConfigurer
- 含まれているクラス:
- ServerHttpSecurity.OidcLogoutSpec
コンストラクターのサマリー
コンストラクター方法の概要
修飾子と型メソッド説明logoutHandler
(ServerLogoutHandler logoutHandler) セッションごとのログアウトの内容と方法を設定します。バックチャネルログアウトを呼び出すときにこのエンドポイントを使用します。
コンストラクターの詳細
BackChannelLogoutConfigurer
public BackChannelLogoutConfigurer()
メソッドの詳細
logoutUri
バックチャネルログアウトを呼び出すときにこのエンドポイントを使用します。結果として得られる
LogoutHandler
は、セッション Cookie と CSRF トークンをこのエンドポイントにPOST
送信し、対応するエンドユーザーセッションを無効にします。{baseUrl}
、{baseScheme}
、{basePort}
のような URI テンプレートをサポートします。デフォルトでは、URI は
{baseUrl}/logout/connect/back-channel/{registrationId}
に設定されており、元のバックチャネルリクエストのスキームとポートは保持されますが、ホストとエンドポイントは変更されます。ログアウトエンドポイントに Spring Security を使用している場合、この URI のパス部分は、そこで構成された値と一致する必要があります。
それ以外の場合、サーバー構成によって、
Host
ヘッダー内のスキーム、サーバー名、ポートが、同じサーバーを内部的にアドレス指定する方法と異なる場合に、これが便利です。- パラメーター:
logoutUri
- バックチャネルでログアウトをリクエストする URI- 戻り値:
- さらにカスタマイズするための
ServerHttpSecurity.OidcLogoutSpec.BackChannelLogoutConfigurer
- 導入:
- 6.2.4
logoutHandler
public ServerHttpSecurity.OidcLogoutSpec.BackChannelLogoutConfigurer logoutHandler(ServerLogoutHandler logoutHandler) セッションごとのログアウトの内容と方法を設定します。これは
logoutUri(String)
に与えられた値を上書きしますデフォルトでは、結果として得られる
LogoutHandler
は、セッション Cookie と OIDC ログアウトトークンを元のバックチャネルログアウトエンドポイントにPOST
で戻します。このメソッドを使用すると、
POST
がセッション Cookie と CSRF トークンをアプリケーションの/logout
エンドポイントに送信するという基礎となるデフォルトが変更されます。そのため、他の変更を必要としない場合でも、特別な CSRF 構成は必要ないため、/logout
のデフォルトを受け入れる代わりにこれを呼び出すことをお勧めします。例: バックチャネルログアウトを次のように構成します。
http .oidcLogout((oidc) -> oidc .backChannel((backChannel) -> backChannel .logoutHandler(new OidcBackChannelServerLogoutHandler()) ) );
セッションごとのログアウト呼び出しに特別な CSRF 構成が必要なくなるようになります。デフォルトの URI は
{baseUrl}/logout/connect/back-channel/{registrationId}
です。これは、バックチャネルサービスに公開されている同じエンドポイントの内部バージョンです。OidcBackChannelServerLogoutHandler.setLogoutUri(String)
を使用して、Host
ヘッダーのスキーム、サーバー名、ポートを変更し、アプリケーションが内部で自身をアドレス指定する方法に合わせることができます。たとえば、アプリケーションが内部的に自身を呼び出す方法が、受信トラフィックとは異なるスキームとポートである場合、エンドポイントを次のように構成できます。
http .oidcLogout((oidc) -> oidc .backChannel((backChannel) -> backChannel .logoutUri("http://localhost:9000/logout/connect/back-channel/{registrationId}") ) );
次のように
@Bean
として公開することもできます。@Bean OidcBackChannelServerLogoutHandler oidcLogoutHandler() { OidcBackChannelServerLogoutHandler logoutHandler = new OidcBackChannelServerLogoutHandler(); logoutHandler.setLogoutUri("http://localhost:9000/logout/connect/back-channel/{registrationId}"); return logoutHandler; }
同じ効果が得られます。- パラメーター:
logoutHandler
-ServerLogoutHandler
は各セッションごとに使用する- 戻り値:
- さらなるカスタマイズのための
ServerHttpSecurity.OidcLogoutSpec.BackChannelLogoutConfigurer
- 導入:
- 6.4