1

ログインとパスワードによる認証をユーザーに要求する Vaadin Web アプリケーションを作成しています。別の認証手段として CAC 認証を追加できるかどうかを知りたいです。

要約すると、私の目標は、ユーザーが既に CAC で認証されている場合は Web サイトへのアクセスを許可すること、またはユーザーが CAC 認証されていない場合は標準のログイン (名前/パスワード) を要求することです。

検索とグーグルでJava PKCS#11を見つけましたが、デスクトップ統合用のライブラリのようです。

また、私の状況に似ているthisおよびthisの投稿を見たことがありますが、実際にはそうではありません。最初のものは、Web サーバーを構成することによる Web アプリケーション全体の認証の要件について話します。2 つ目は、デスクトップ ソリューションとして Java PKCS#11 を提示します。

繰り返しますが、私が望むのは「並列」ログインです。ブラウザが CAC 証明書をサーバーに送信する場合、サーバーは標準ログインを必要としません。それ以外の場合ははい。出来ますか?また、CAC 証明書がサーバーに送信された場合、所有者の名前など、この CAC に関するデータを取得する方法はありますか?

4

1 に答える 1

2

正しく構成されたサーブレット コンテナーでは、これを使用してクライアント証明書を読み取ることができます (存在する場合)。

String cipherSuite = (String) req.getAttribute("javax.servlet.request.cipher_suite");

if (cipherSuite != null) {
    X509Certificate certChain[] = (X509Certificate[]) req.getAttribute("javax.servlet.request.X509Certificate");
    if (certChain != null) {
        for (int i = 0; i < certChain.length; i++) {
            System.out.println ("Client Certificate [" + i + "] = "
                    + certChain[i].toString());
        }
    }
}
于 2015-07-22T15:40:19.827 に答える