私は現在、OpenID4Java ライブラリを使用して Java HttpServlets で OpenID Relying Party (RP) と ID プロバイダー (IdP) を実装しています。2 つのサーブレットが相互に通信する際に問題が発生しました。私が抱えている問題は、サーブレットの動作をさらに改善することだと思いますが、何が起こっているのかをよりよく理解するために、アプリケーションに関する情報を含めました。
シナリオは次のとおりです。
サーブレット #1 (私の RP) は、次のようにサーブレット #2 (私の IdP) にリクエストを送信します。
httpResp.sendRedirect(authReq.getDestinationUrl(true));
基本的に authReq = さまざまな OpenID 固有のパラメーターを含むメッセージ。getDestinationUrl(true) を呼び出すことで、リクエストを GET 経由で送信する URL にエンコードします。
サーブレット #2 は、doGet メソッドで上記の GET をキャッチします。情報を解析し、応答を作成して、次の方法でサーブレット #1 に送り返します。
文字列 responseText = processRequest(httpReq, httpResp);
httpResp.setContentType("text/html");
OutputStream outputStream = httpResp.getOutputStream();
//
outputStream.write(responseText.getBytes());
outputStream.close();
私の問題は、この応答がサーブレット #1 に戻らないことです。サーバー #1 がサーブレット #2 から応答を受信すると、その doGet または doPost メソッドがメッセージをキャッチすることを期待します。ただし、どちらの場合も発生しません。
アドバイスをいただければ幸いです。
ありがとう!