В настоящее время я внедряю проверяющую сторону OpenID (RP) и провайдера идентификации (IdP) с Java HttpServlets с использованием библиотеки OpenID4Java. Я столкнулся с проблемой, заставляя двух сервлетов общаться друг с другом. Я считаю, что проблема, с которой я сталкиваюсь, заключается в том, чтобы больше понимать, как ведут себя сервлеты, однако я включил информацию о своем приложении, чтобы лучше понять, что происходит.
Сценарий выглядит следующим образом:
Сервлет № 1 (мой RP) отправляет запрос сервлету № 2 (мой IdP) следующим образом:
httpResp.sendRedirect(authReq.getDestinationUrl(true));
По сути, authReq = сообщение с различными параметрами OpenID. Вызывая getDestinationUrl (true), он кодирует запрос в URL для отправки через GET.
Servlet # 2 перехватывает вышеуказанный GET в методе doGet. Он анализирует информацию и создает ответ для отправки сервлету № 1 следующим образом:
String responseText = processRequest (httpReq, httpResp);
httpResp.setContentType("text/html");
OutputStream outputStream = httpResp.getOutputStream();
//
outputStream.write(responseText.getBytes());
outputStream.close();
Моя проблема в том, что этот ответ никогда не возвращается к сервлету №1. Я ожидаю, что когда Сервер № 1 получит ответ от Сервлета № 2, его метод doGet или doPost перехватит сообщение. Однако ни один случай не происходит.
Любой совет будет принят с благодарностью.
Спасибо!