1.3. OIDC レスポンスフィルター


1 つ以上の OidcResponseFilter 実装を登録することで、OIDC クライアントリクエストへのレスポンスをフィルタリングできます。これにより、ログへの記録やその他のアクションを実行するために、レスポンスのステータス、ヘッダー、ボディーを確認できます。

1 つのフィルターですべての OIDC クライアントリクエストへのレスポンスをインターセプトすることも、@OidcEndpoint アノテーションを使用して、このフィルターを特定の OIDC クライアントリクエストへのレスポンスにのみ適用することもできます。以下に例を示します。

package io.quarkus.it.keycloak;

import jakarta.enterprise.context.ApplicationScoped;

import org.jboss.logging.Logger;

import io.quarkus.arc.Unremovable;
import io.quarkus.oidc.common.OidcEndpoint;
import io.quarkus.oidc.common.OidcEndpoint.Type;
import io.quarkus.oidc.common.OidcResponseFilter;
import io.quarkus.oidc.common.runtime.OidcConstants;

@ApplicationScoped
@Unremovable
@OidcEndpoint(value = Type.TOKEN) 
1

public class TokenEndpointResponseFilter implements OidcResponseFilter {
    private static final Logger LOG = Logger.getLogger(TokenEndpointResponseFilter.class);

    @Override
    public void filter(OidcResponseContext rc) {
        String contentType = rc.responseHeaders().get("Content-Type"); 
2

        if (contentType.equals("application/json")
                && "refresh_token".equals(rc.requestProperties().get(OidcConstants.GRANT_TYPE)) 
3

                && rc.responseBody().toJsonObject().containsKey("refresh_token")) { 
4

            LOG.debug("Tokens have been refreshed");
        }
    }

}
1
このフィルターを、OIDC トークンエンドポイントを対象とするリクエストだけに制限します。
2
レスポンスの Content-Type ヘッダーを確認します。
3
OidcRequestContextProperties リクエストプロパティーを使用して、それが refresh_grant トークングラントのレスポンスであることを確認します。
4
レスポンス JSON に refresh_token プロパティーが含まれていることを確認します。
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る