Revision 1723
Added by berkley over 21 years ago
src/edu/ucsb/nceas/metacat/MetaCatServlet.java | ||
---|---|---|
118 | 118 |
private PropertyResourceBundle options = null; |
119 | 119 |
private MetaCatUtil util = null; |
120 | 120 |
private DBConnectionPool connPool = null; |
121 |
private Hashtable sessionHash = new Hashtable(); |
|
121 | 122 |
private static final String PROLOG = "<?xml version=\"1.0\"?>"; |
122 | 123 |
private static final String SUCCESS = "<success>"; |
123 | 124 |
private static final String SUCCESSCLOSE = "</success>"; |
... | ... | |
292 | 293 |
out.close(); |
293 | 294 |
|
294 | 295 |
// aware of session expiration on every request |
295 |
} else { |
|
296 |
|
|
296 |
} |
|
297 |
else |
|
298 |
{ |
|
297 | 299 |
HttpSession sess = request.getSession(true); |
298 |
if (sess.isNew()) { |
|
300 |
if (sess.isNew() && !params.containsKey("sessionid")) {
|
|
299 | 301 |
// session expired or has not been stored b/w user requests |
300 | 302 |
username = "public"; |
301 | 303 |
sess.setAttribute("username", username); |
302 |
} else {
|
|
303 |
username = (String)sess.getAttribute("username");
|
|
304 |
password = (String)sess.getAttribute("password");
|
|
305 |
groupnames = (String[])sess.getAttribute("groupnames");
|
|
306 |
try {
|
|
304 |
} |
|
305 |
else
|
|
306 |
{
|
|
307 |
try
|
|
308 |
{ |
|
307 | 309 |
if(params.containsKey("sessionid")) |
308 | 310 |
{ |
309 |
sess_id = (String)params.get("sessionid"); |
|
310 |
sess.setAttribute("JSESSIONID", sess_id); |
|
311 |
sess_id = ((String[])params.get("sessionid"))[0]; |
|
312 |
if(sessionHash.containsKey(sess_id)) |
|
313 |
{ |
|
314 |
sess = (HttpSession)sessionHash.get(sess_id); |
|
315 |
} |
|
311 | 316 |
} |
312 | 317 |
else |
313 | 318 |
{ |
314 | 319 |
sess_id = (String)sess.getId(); |
320 |
sessionHash.put(sess_id, sess); |
|
315 | 321 |
} |
316 |
} catch(IllegalStateException ise) { |
|
322 |
} |
|
323 |
catch(IllegalStateException ise) |
|
324 |
{ |
|
317 | 325 |
System.out.println("error in handleGetOrPost: this shouldn't " + |
318 | 326 |
"happen: the session should be valid: " + |
319 | 327 |
ise.getMessage()); |
320 | 328 |
} |
329 |
|
|
330 |
username = (String)sess.getAttribute("username"); |
|
331 |
password = (String)sess.getAttribute("password"); |
|
332 |
groupnames = (String[])sess.getAttribute("groupnames"); |
|
321 | 333 |
} |
322 | 334 |
} |
323 | 335 |
|
Also available in: Unified diff
got interservlet session handling working.