comparison src/de/mpiwg/itgroup/eSciDoc/Tools/EScidocBasicHandler.java @ 15:e0efd3a9d2f0

changes for escidoc1.4
author dwinter
date Mon, 17 Sep 2012 10:21:04 +0200
parents a844f6948dd8
children
comparison
equal deleted inserted replaced
14:94ea06e32003 15:e0efd3a9d2f0
20 20
21 import javax.swing.text.html.HTMLDocument.HTMLReader.IsindexAction; 21 import javax.swing.text.html.HTMLDocument.HTMLReader.IsindexAction;
22 22
23 23
24 import org.apache.commons.codec.EncoderException; 24 import org.apache.commons.codec.EncoderException;
25 import org.apache.http.Header;
25 import org.apache.http.HttpEntity; 26 import org.apache.http.HttpEntity;
27 import org.apache.http.HttpMessage;
26 import org.apache.http.HttpResponse; 28 import org.apache.http.HttpResponse;
29 import org.apache.http.NameValuePair;
27 import org.apache.http.StatusLine; 30 import org.apache.http.StatusLine;
28 import org.apache.http.client.ClientProtocolException; 31 import org.apache.http.client.ClientProtocolException;
32 import org.apache.http.client.CookieStore;
29 import org.apache.http.client.HttpClient; 33 import org.apache.http.client.HttpClient;
34 import org.apache.http.client.entity.UrlEncodedFormEntity;
30 import org.apache.http.client.methods.HttpDelete; 35 import org.apache.http.client.methods.HttpDelete;
31 import org.apache.http.client.methods.HttpEntityEnclosingRequestBase; 36 import org.apache.http.client.methods.HttpEntityEnclosingRequestBase;
32 import org.apache.http.client.methods.HttpGet; 37 import org.apache.http.client.methods.HttpGet;
33 import org.apache.http.client.methods.HttpPost; 38 import org.apache.http.client.methods.HttpPost;
34 import org.apache.http.client.methods.HttpPut; 39 import org.apache.http.client.methods.HttpPut;
35 import org.apache.http.client.methods.HttpRequestBase; 40 import org.apache.http.client.methods.HttpRequestBase;
36 import org.apache.http.client.params.ClientPNames; 41 import org.apache.http.client.params.ClientPNames;
37 import org.apache.http.client.params.CookiePolicy; 42 import org.apache.http.client.params.CookiePolicy;
43 import org.apache.http.client.protocol.ClientContext;
44 import org.apache.http.cookie.Cookie;
38 import org.apache.http.entity.InputStreamEntity; 45 import org.apache.http.entity.InputStreamEntity;
46 import org.apache.http.entity.StringEntity;
47 import org.apache.http.impl.client.BasicCookieStore;
39 import org.apache.http.impl.client.DefaultHttpClient; 48 import org.apache.http.impl.client.DefaultHttpClient;
40 import org.apache.http.impl.conn.SingleClientConnManager; 49 import org.apache.http.impl.conn.SingleClientConnManager;
50 import org.apache.http.impl.cookie.BasicClientCookie;
51 import org.apache.http.message.BasicNameValuePair;
41 import org.apache.http.protocol.BasicHttpContext; 52 import org.apache.http.protocol.BasicHttpContext;
42 import org.apache.http.protocol.HttpContext; 53 import org.apache.http.protocol.HttpContext;
43 import org.apache.log4j.Logger; 54 import org.apache.log4j.Logger;
44 import org.jdom.Attribute; 55 import org.jdom.Attribute;
45 import org.jdom.Document; 56 import org.jdom.Document;
54 import de.mpiwg.itgroup.eSciDoc.echoObjects.ECHORessource; 65 import de.mpiwg.itgroup.eSciDoc.echoObjects.ECHORessource;
55 import de.mpiwg.itgroup.eSciDoc.exceptions.ConnectorException; 66 import de.mpiwg.itgroup.eSciDoc.exceptions.ConnectorException;
56 import de.mpiwg.itgroup.eSciDoc.exceptions.ESciDocXmlObjectException; 67 import de.mpiwg.itgroup.eSciDoc.exceptions.ESciDocXmlObjectException;
57 import de.mpiwg.itgroup.eSciDoc.exceptions.ObjectNotUniqueError; 68 import de.mpiwg.itgroup.eSciDoc.exceptions.ObjectNotUniqueError;
58 import de.mpiwg.itgroup.eSciDoc.utils.eSciDocXmlObject; 69 import de.mpiwg.itgroup.eSciDoc.utils.eSciDocXmlObject;
70
59 71
60 72
61 73
62 /** 74 /**
63 * Handler to create a connection with an eScidoc server 75 * Handler to create a connection with an eScidoc server
89 101
90 logger = Logger.getRootLogger(); 102 logger = Logger.getRootLogger();
91 103
92 } 104 }
93 105
94 106 private void addHandleToMethod(final HttpMessage method,
107 final String eSciDocUserHandle) {
108 method.setHeader("Cookie", "escidocCookie=" + eSciDocUserHandle);
109 }
95 110
96 /** 111 /**
97 * Logs you into escidoc and sets the httpclient field to the current client for this session 112 * Logs you into escidoc and sets the httpclient field to the current client for this session
98 * @return gives you the httpclient for further usage. 113 * @return gives you the httpclient for further usage.
99 * @throws HttpException 114 * @throws HttpException
100 * @throws ClientProtocolException 115 * @throws ClientProtocolException
101 * @throws IOException 116 * @throws IOException
102 */ 117 */
118
119
103 public HttpClient login() throws IOException { 120 public HttpClient login() throws IOException {
104 httpclient = new DefaultHttpClient(); 121 httpclient = new DefaultHttpClient();
105 122
106 HttpContext localContext = new BasicHttpContext(); 123
107 124 //httpclient.getParams().setParameter(ClientPNames.COOKIE_POLICY, CookiePolicy.BROWSER_COMPATIBILITY);
108 httpclient.getParams().setParameter(ClientPNames.COOKIE_POLICY, CookiePolicy.BROWSER_COMPATIBILITY); 125 httpclient.getParams().setParameter(ClientPNames.COOKIE_POLICY, CookiePolicy.RFC_2109);
109 126 httpclient.getParams().setParameter("http.protocol.single-cookie-header", true);
127
110 HttpPost httppost = new HttpPost(eScidocUrl+"/aa/login?target=/"); 128 HttpPost httppost = new HttpPost(eScidocUrl+"/aa/login?target=/");
111 129
112 logger.debug("executing request"); 130 logger.debug("executing request");
113 131
114 HttpResponse response = httpclient.execute(httppost); 132 HttpResponse response = httpclient.execute(httppost);
119 137
120 HttpEntity entity = response.getEntity(); 138 HttpEntity entity = response.getEntity();
121 if (entity != null) { entity.consumeContent(); 139 if (entity != null) { entity.consumeContent();
122 } 140 }
123 141
124 HttpGet httpget = new HttpGet(eScidocUrl+"/aa/j_spring_security_check?j_username="+user+"&j_password="+password); 142
125 143
126 response = httpclient.execute(httpget); 144 String params="j_username="+user+"&j_password="+password;
127 //entity = response.getEntity(); 145
128 146
147 List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
148 nameValuePairs.add(new BasicNameValuePair("j_username",
149 user));
150 nameValuePairs.add(new BasicNameValuePair("j_password",
151 password));
152 HttpPost httpget = new HttpPost(eScidocUrl+"/aa/j_spring_security_check");
153
154 httpget.setEntity(new UrlEncodedFormEntity(nameValuePairs));
155 //httpget.setEntity(new StringEntity(params));
156 //
157 //
158 response = httpclient.execute(httpget);
159 // //entity = response.getEntity();
160 //
161 System.out.println("----------------------------------------");
162 System.out.println(response.getStatusLine());
163
164 entity = response.getEntity();
165 InputStream ct = entity.getContent();
166
167 String ret = EScidocBasicHandler.convertStreamToString(ct);
168 // if (entity != null) { entity.consumeContent();
169 // }
170 //
171 System.out.println(ret);
172
173
174 httppost = new HttpPost(eScidocUrl+"/aa/login?target=/");
175
176 logger.debug("executing request");
177
178 response = httpclient.execute(httppost);
179 //HttpEntity entity = httppost.getRes
180
129 System.out.println("----------------------------------------"); 181 System.out.println("----------------------------------------");
130 System.out.println(response.getStatusLine()); 182 System.out.println(response.getStatusLine());
131 183
132 entity = response.getEntity(); 184 entity = response.getEntity();
133 if (entity != null) { entity.consumeContent(); 185 if (entity != null) { entity.consumeContent();
134 } 186 }
135 187
136 //entity.consumeContent(); 188
137 return httpclient; 189 return httpclient;
138 } 190 }
139 191
140 /** 192 /**
141 * Sends a PUT request to the escidoc client. performs a login if not done before. 193 * Sends a PUT request to the escidoc client. performs a login if not done before.