【发布时间】:2017-02-10 17:28:50
【问题描述】:
我目前正在处理 spring 应用程序中的一些代码,它需要决定是应该将正在登录的用户重定向到新站点(在另一台服务器上)还是继续使用旧站点。
我一直在使用 Apache HttpClient 通过 POST 执行此操作,并且能够从旧登录名登录新站点。
我的问题是我无法在登录后将浏览器重定向到新站点并“保持登录状态”,而是将我重定向到新站点的登录页面,因为我没有登录.
private void redirect2NewSite(HttpServletResponse response, String docNum, String username, String passwd) {
String url = "http://localhost:9080/website/doLogin";
HttpClient client = HttpClientBuilder.create().build();
HttpPost post = new HttpPost(url);
List<NameValuePair> urlParameters = new ArrayList<>();
urlParameters.add(new BasicNameValuePair("documentNumber", docNum));
urlParameters.add(new BasicNameValuePair("username", username));
urlParameters.add(new BasicNameValuePair("password", passwd));
post.setEntity(new UrlEncodedFormEntity(urlParameters));
HttpResponse postResponse = client.execute(post);
String responseUrl = postResponse.getFirstHeader("Location").getValue();
response.setHeader("Location", responseUrl);
response.sendRedirect(responseUrl); // This sends me to the new page login
// But should send me to the home page, already logged in
}
旧项目是使用struts重定向到控制器或jsp的。
【问题讨论】:
标签: java spring post login httpclient