我有一些应用程序的tomcat服务器。此服务器使用标准j_secure_check身份验证。在另一个tomcat服务器上,我需要部署必须是第一个服务器的代理的应用程序。所以我需要从另一个servlet调用servlet,但首先我需要使用j_secure_check进行身份验证。是否有可能以程序化方式进行?
答案 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().
}