我有一個情況如下:通過Servlet驗證
我有2個Web應用程序運行在Tomcat上。最初,用戶已登錄到應用程序1,然後。有一個鏈接到應用程序2.在點擊鏈接用戶應該被重定向到第二個應用程序。
這兩個應用程序都使用LDAP身份驗證。
現在,這裏的問題是第二個應用程序有它自己的身份驗證系統。
因此,我們計劃隱式驗證在第一個系統中登錄的用戶。
我已經寫了一個servlet,當我在App1中點擊App2的鏈接時,它會被執行。
我想使用下面的代碼,它應該在給定的參數上調用app2上的Servlet「ldap-login」。參數名稱是正確的。
String targetURL = "http://localhost:8080/app2/ldap-login";
HttpClient client = new HttpClient();
PostMethod doPost = new PostMethod(targetURL);
//doPost.getParams().setBooleanParameter(HttpMethodParams.USE_EXPECT_CONTINUE, true);
doPost.addParameter("login_netid", "alice");
doPost.addParameter("login_password", "alice");
try {
int status = client.executeMethod(doPost);
if (status == HttpStatus.SC_OK) {
// redirect
response.sendRedirect("http://localhost:8080/app2/myPage");
} else {
System.out.println("Service failed, Response Code= " +
HttpStatus.getStatusText(status));
System.out.println("Response Body --> " + doPost.getResponseBodyAsString());
}
} catch (Exception ex) {
System.out.println("ERROR: " +
ex.getClass().getName() + " "+ ex.getMessage());
ex.printStackTrace();
} finally {
doPost.releaseConnection();
}
但我得到響應「暫時移動」。
任何人都可以建議我任何替代?
如果您從瀏覽器執行相同的POST操作(使用簡單表單提交),它的行爲如何? – srkavin
當我從瀏覽器使用POST執行相同的操作時,它表現完美。 –