Lines 461-467
Link Here
|
461 |
} |
461 |
} |
462 |
connector.getMapper().map(serverName, decodedURI, |
462 |
connector.getMapper().map(serverName, decodedURI, |
463 |
request.getMappingData()); |
463 |
request.getMappingData()); |
464 |
request.setContext((Context) request.getMappingData().context); |
464 |
request.setContext(extractContextFromRequest(request)); |
|
|
465 |
|
466 |
// Had to do this after the context was set. |
467 |
// Unfortunately parseSessionId is still necessary as it |
468 |
// affects the final URL. Safe as session cookies still |
469 |
// haven't been parsed. |
470 |
if (isURLRewritingDisabled(request)) |
471 |
clearRequestedSession(request); |
465 |
request.setWrapper((Wrapper) request.getMappingData().wrapper); |
472 |
request.setWrapper((Wrapper) request.getMappingData().wrapper); |
466 |
|
473 |
|
467 |
// Filter trace method |
474 |
// Filter trace method |
Lines 516-521
Link Here
|
516 |
return true; |
523 |
return true; |
517 |
} |
524 |
} |
518 |
|
525 |
|
|
|
526 |
private boolean isURLRewritingDisabled(Request request) { |
527 |
Context context = extractContextFromRequest(request); |
528 |
if (context != null) |
529 |
return (context.isDisableURLRewriting()); |
530 |
else |
531 |
return (false); |
532 |
} |
519 |
|
533 |
|
520 |
/** |
534 |
/** |
521 |
* Parse session id in URL. |
535 |
* Parse session id in URL. |
Lines 560-578
Link Here
|
560 |
} |
574 |
} |
561 |
request.setRequestedSessionURL(true); |
575 |
request.setRequestedSessionURL(true); |
562 |
} catch (UnsupportedEncodingException uee) { |
576 |
} catch (UnsupportedEncodingException uee) { |
563 |
// Make sure no session ID is returned |
577 |
clearRequestedSession(request); |
564 |
request.setRequestedSessionId(null); |
|
|
565 |
request.setRequestedSessionURL(false); |
566 |
log.warn(sm.getString("coyoteAdapter.parseSession", enc), uee); |
578 |
log.warn(sm.getString("coyoteAdapter.parseSession", enc), uee); |
567 |
} |
579 |
} |
568 |
} else { |
580 |
} else { |
569 |
request.setRequestedSessionId(null); |
581 |
clearRequestedSession(request); |
570 |
request.setRequestedSessionURL(false); |
|
|
571 |
} |
582 |
} |
572 |
|
583 |
|
573 |
} |
584 |
} |
574 |
|
585 |
|
575 |
|
586 |
|
|
|
587 |
private void clearRequestedSession(Request request) { |
588 |
request.setRequestedSessionId(null); |
589 |
request.setRequestedSessionURL(false); |
590 |
} |
591 |
|
592 |
|
593 |
private Context extractContextFromRequest(Request request) { |
594 |
return (Context) request.getMappingData().context; |
595 |
} |
596 |
|
597 |
|
576 |
/** |
598 |
/** |
577 |
* Parse session id in URL. |
599 |
* Parse session id in URL. |
578 |
*/ |
600 |
*/ |
Lines 582-588
Link Here
|
582 |
// context, don't go looking for a session ID in a cookie as a cookie |
604 |
// context, don't go looking for a session ID in a cookie as a cookie |
583 |
// from a parent context with a session ID may be present which would |
605 |
// from a parent context with a session ID may be present which would |
584 |
// overwrite the valid session ID encoded in the URL |
606 |
// overwrite the valid session ID encoded in the URL |
585 |
Context context = (Context) request.getMappingData().context; |
607 |
Context context = extractContextFromRequest(request); |
586 |
if (context != null && !context.getCookies()) |
608 |
if (context != null && !context.getCookies()) |
587 |
return; |
609 |
return; |
588 |
|
610 |
|