Servlet请求授权给另一个servlet

时间:2011-04-01 19:09:31

标签: java tomcat servlets

我有一些应用程序的tomcat服务器。此服务器使用标准j_secure_check身份验证。在另一个tomcat服务器上,我需要部署必须是第一个服务器的代理的应用程序。所以我需要从另一个servlet调用servlet,但首先我需要使用j_secure_check进行身份验证。是否有可能以程序化方式进行?

1 个答案:

答案 0 :(得分:0)

您需要获取会话cookie并在后续请求中传递它。

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().
}