1

カード支払い処理のために仮想 POS への POST 呼び出しを実装したいと考えています。POS は銀行が提供する単なるサーバー プログラムであり、取引データを含むフォームからアクセスする必要があります。これは、フォーム、メソッド ポスト、および一連の隠しパラメータを構成し、出力を新しいウィンドウに向けることによって実行できます (この時点から銀行ソフトウェアが制御を引き継ぐため、これが必要です)。しかし、セキュリティ上の問題から、バッキング Bean から POST 呼び出しを行いたいと考えています。したがって:

  1. facelet のボタンが RequestScoped Bean のメソッドを呼び出します。この Bean は、セッション中のトランザクションのデータにアクセスできます。
  2. 豆は何かを作ります。
  3. メソッド内で、URLConnection を開き、パラメーターを追加してから、銀行のプログラムを呼び出します (これはサーブレットだと思います)。
  4. このサーブレットの出力が何であれ、クライアント側の新しいウィンドウにリダイレクトする必要があります。この新しいウィンドウには認証と実際の支払いが含まれますが、これは銀行のソフトウェアです。

JSF を使用してその動作を実装する正しいパターンはどれですか?

前もって感謝します。

4

1 に答える 1

0

銀行のサーブレット機能を JSF アプリケーションに統合したいが、PCI コンプライアンスに煩わされたくないということは理解できたと思います。

リダイレクトは、GET を実行する URL を指定する HTTP サーバーの応答コードであるため、フォーム POST の応答をリダイレクトすることはできません。

また、この POST 要求をサーバー側から銀行のサーブレットにプログラムで渡して、受信した応答をレンダリングする必要もありません。これは、ユーザーと Web アプリケーションの間にセッションが存在するのではなく、銀行のサーブレットとの別のセッションを既に開始しているためです。これは、実際には重大なセキュリティ上の懸念です。

サーバーが銀行サーブレットとのすべての HTTP 通信を処理していない限り、JSF を介してこの銀行サーブレット セッションを開始することはできません。

あなたのシナリオでこれを行う方法は、Javascript を使用して通常の HTML フォームで新しいウィンドウを開き、フォームのアクションを銀行のサーブレット URL に設定し、そのフォームの初期入力を必要なパラメーター名と一致させることです。 HTTP ポスト用。この HTML フォームが送信されると、SSL 証明書がユーザーのブラウザーとネゴシエートされ、POST 応答が Web アプリケーションの関与なしにレンダリングされます。クライアントは、アプリケーションのセッションと Bank Servlet のセッションの 2 つの個別のセッションを維持します。

これは、Web アプリケーションに PCI コンプライアンス要件を課さない安全な方法です。

于 2013-04-23T18:11:05.630 に答える