I have a url from which i am fetching a token. That part is working fine. Then this token is being used to in another url to get value. But while doing that I am getting a 302 error. So, I tried to take the location parameter from the response header and use it in the url. But I am getting the below error
org.apache.http.client.ClientProtocolException
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:187)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:108)
at com.citi.clg.originations.strategic.service.CertDashboardServiceImpl.getService(CertDashboardServiceImpl.java:800)
at com.citi.clg.originations.strategic.dwr.CertDashboardAJAXLookup.getService(CertDashboardAJAXLookup.java:114)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.directwebremoting.impl.CreatorModule$1.doFilter(CreatorModule.java:172)
at org.directwebremoting.impl.CreatorModule.executeMethod(CreatorModule.java:184)
at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:353)
at org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:306)
at org.directwebremoting.dwrp.BaseCallHandler.handle(BaseCallHandler.java:110)
at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:211)
at org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:185)
at org.directwebremoting.servlet.DwrServlet.doPost(DwrServlet.java:144)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:138)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:528)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:798)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:810)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.http.ProtocolException: Target host is not specified
at org.apache.http.impl.conn.DefaultRoutePlanner.determineRoute(DefaultRoutePlanner.java:71)
at org.apache.http.impl.client.InternalHttpClient.determineRoute(InternalHttpClient.java:125)
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:184)
... 43 more
Below is my code
String id=jobj1.get("ID").toString();
try {
HttpPost httpPost;
httpPost = new HttpPost(
"https://example.com");
//httpPost.setEntity(new StringEntity(data));
httpPost.setHeader("Accept", "application/json");
httpPost.setHeader("Content-type", "application/json");
CloseableHttpResponse response = client.execute(httpPost);
System.out.println(response.getEntity().getContent());
System.out.println(response.getStatusLine().getStatusCode());
System.out.println(response.getHeaders("Location").toString());
String tempUrl=response.getHeaders("Location")[0].getValue().replaceAll(" ", "%20");
System.out.println(response.getHeaders("Location")[0].getValue().replaceAll(" ","%20"));
System.out.println(tempUrl.replace("|","%7c"));
if(response.getStatusLine().getStatusCode()==302)
{
System.out.println(response.getHeaders("Location")[0].getValue().replaceAll(" ", "%20").replace("|", "%7c"));
httpPost=new HttpPost(URLEncoder.encode(response.getHeaders("Location")[0].getValue(),"UTF-8"));
//httpPost=new HttpPost(response.getHeaders("Location")[0].getValue().replaceAll(" ", "%20").replace("|", "%7c"));
httpPost.setHeader("Accept", "application/json");
httpPost.setHeader("Content-type", "application/json");
response = client.execute(httpPost);
}
if (response.getStatusLine().getStatusCode() == 200 ) {
BufferedReader br = new BufferedReader(new InputStreamReader((response.getEntity().getContent())));
String output;
while ((output = br.readLine()) != null) {
responseData = responseData + output;
}
} else {
responseData = "{\"status\": \"ERROR\"}";
}
} catch (Exception e) {
e.printStackTrace();
responseData = "{\"status\": \"ERROR\"}";
} finally {
try {
client.close();
} catch (IOException e) {
}
}
Here is my redirect url
Location: /enlight.server/login.jsp?goto=/enlight.server/html/scripts/api/assets.jsp?all=true&globalCrit=Host where name:sdcgcgtiblb20pv | Certificates where Until>1d AND Until<31d &action=table&envId=92738683& EvolvenSessionKey=377d58e55aa4b81eaeb9028226b7a64565c57fc9&Json=true
I had been taking the token and closing the session and reopening the session which caused the invalidation of the token and redirection