Hi All,
I am new to HttpClient. I need to develop a proxy servlet which does an
internal Http post to a IIS server which in turn generates a cookie which i
need to use in order to perform Single Sign On to a Vendor application.
Currently this Single Sign On is working perfectly for a form based http
posting of user id and password. The requirement is to use a servlet based http
post instead of form based http post.
Therefore, I decided to use HttpClient API to achieve this.
The following is the pseduo code for your understanding
String url = "http://192.168.33.290/siteminderagent/forms/login.fcc
<https://webmail.ncs.com.sg/exchweb/bin/redir.asp?URL=http://192.168.33.290/siteminderagent/forms/login.fcc>
";
HttpClient client = new HttpClient();
PostMethod postMethod = new PostMethod(url);
postMethod.addParameter("USER","skarthi");
postMethod.addParameter("PASSWORD","pass");
postMethod.addParameter("target","http://spectrum.skarthi.com.sg/
<https://webmail.ncs.com.sg/exchweb/bin/redir.asp?URL=http://spectrum.skarthi.com.sg/>
");
int statusCode = client.executeMethod(postMethod);
The STATUS CODE RETURNED HERE IS 302. BY RIGHT IF I USE A BROWSER TO PERFORM
THIS POST , THE BROWSER WILL AUTOMATICALLY REDIRECT TO
http://spectrum.skarthi.com.sg/
<https://webmail.ncs.com.sg/exchweb/bin/redir.asp?URL=http://spectrum.skarthi.com.sg/>
.
Since the http post is through HttpClient I think I am getting 302 status code.
Therefore , I am performing the following
Header locationHeader = postMethod.getResponseHeader("location");
String redirectLocation =null;
if (locationHeader != null) {
redirectLocation = locationHeader.getValue();
}
response.sendRedirect(redirectLocation );
The problem which I am facing now is that the Single Sing On is not working.
For the Single Sing On to work I need to pass the coookie value availble in my
postMethod to the URL redirected.
My Question here is that .. How do I pass the session info which I getting
after the "executeMethod" to the redirected URL
regards,
S.Karthikeyan