Mercurial > hg > eSciDocImport
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. |