Запрос сервлета к другому сервлету с авторизацией - PullRequest
0 голосов
/ 01 апреля 2011

У меня есть сервер Tomcat с некоторыми приложениями. Этот сервер использует стандартную аутентификацию j_secure_check. На другом сервере Tomcat мне нужно развернуть приложение, которое должно быть прокси на первом сервере. Поэтому мне нужно вызвать сервлет из другого сервлета, но сначала мне нужно выполнить аутентификацию с помощью j_secure_check. Возможно ли это сделать программно?

1 Ответ

0 голосов
/ 01 апреля 2011

Вам необходимо получить куки-файл сессии и передать его при последующих запросах.

String url = "http://example.com/j_security_check?j_username=foo&j_password=bar";
HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection();

if (connection.getResponseCode() == 200) { // 200 = OK, 401 = unauthorized
    String cookie = connection.getHeaderField("Set-Cookie").split(";", 2)[0];

    url = "http://example.com/somepage.jsp";
    connection = (HttpURLConnection) new URL(url).openConnection();
    connection.setRequestProperty("Cookie", cookie);
    InputStream input = connection.getInputStream();
    // You can now write it to response.getOutputStream().
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...