Changeset 5636
- Timestamp:
- 2010-07-08 09:13:04 (3 years ago)
- Location:
- trunk/daisy/applications/daisywiki
- Files:
-
- 3 deleted
- 3 edited
-
frontend/src/main/java/org/outerj/daisy/frontend/AddQueryParamsAction.java (deleted)
-
frontend/src/main/java/org/outerj/daisy/frontend/DaisyRedirectAction.java (deleted)
-
frontend/src/main/java/org/outerj/daisy/frontend/DaisyResetAction.java (deleted)
-
frontend/src/main/java/org/outerj/daisy/frontend/FrontEndContext.java (modified) (4 diffs)
-
frontend/src/main/java/org/outerj/daisy/frontend/util/ResponseUtil.java (modified) (2 diffs)
-
runtime/src/cocoon/webapp/daisy/sitemap.xmap (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/daisy/applications/daisywiki/frontend/src/main/java/org/outerj/daisy/frontend/FrontEndContext.java
r5632 r5636 55 55 private String localeAsString; 56 56 private Logger logger; 57 private VersionMode versionMode;58 57 59 58 public static final String REQUEST_ATTR_KEY = "daisyFrontEndContext"; … … 68 67 setDaisyCocoonPath(daisyCocoonPath); 69 68 setDaisyContextPath(daisyContextPath); 70 71 Cookie versionModeCookie = (Cookie)request.getCookieMap().get("dsyVersionMode");72 if (versionModeCookie == null) {73 versionMode = VersionMode.LIVE;74 } else {75 versionMode = VersionMode.get(versionModeCookie.getValue());76 }77 78 69 } 79 70 … … 249 240 250 241 public VersionMode getVersionMode() { 251 return versionMode; 242 Session session = request.getSession(false); 243 VersionMode versionMode = null; 244 if (session != null) 245 versionMode = (VersionMode)session.getAttribute("dsyVersionMode"); 246 247 if (versionMode != null) 248 return versionMode; 249 250 Cookie cookie = (Cookie)request.getCookieMap().get("dsyVersionMode"); 251 if (cookie != null) 252 return VersionMode.get(cookie.getValue()); 253 254 return VersionMode.LIVE; 252 255 } 253 256 254 257 public void setVersionMode(VersionMode versionMode) { 255 this.versionMode = versionMode; 258 Session session = request.getSession(false); 259 String mode = null; 260 if (session != null) { 261 session.setAttribute("dsyVersionMode", versionMode); 262 return; 263 } 264 256 265 Cookie c = new HttpCookie("dsyVersionMode", String.valueOf(versionMode)); 257 266 response.addCookie(c); … … 314 323 } 315 324 316 public void reset() {317 versionMode = VersionMode.LAST;318 HttpCookie cookie = (HttpCookie)request.getCookieMap().get("dsyVersionMode");319 if (cookie != null) {320 cookie.setValue(versionMode.toString());321 cookie.setMaxAge(0);322 response.addCookie(cookie);323 }324 }325 325 } -
trunk/daisy/applications/daisywiki/frontend/src/main/java/org/outerj/daisy/frontend/util/ResponseUtil.java
r5632 r5636 42 42 43 43 /** 44 * @param request45 * @param location46 * @return returns the result of appending the request's query parameters beginning with "dsy" to the location47 */48 public static String addDaisyParameters(Request request, String location) {49 Enumeration<String> params = request.getParameterNames();50 51 StringBuffer newLocation = new StringBuffer(location);52 53 String separator = "?";54 if (location.endsWith("?") || location.endsWith("&"))55 separator = "";56 else if (location.contains("?"))57 separator = "&";58 59 while (params.hasMoreElements()) {60 String param = params.nextElement();61 if (param.startsWith("dsy")) {62 for (String paramValue: request.getParameterValues(param)) {63 newLocation.append(separator).append(param).append("=").append(paramValue);64 }65 }66 }67 68 return newLocation.toString();69 }70 /**71 44 * Redirects to the given location, but give a head-up when the location is a complete URL. (i.e. only relative and absolute paths, which let the user stay on the same host are accepted) 72 45 */ … … 79 52 throw new IllegalArgumentException("Attention! Somebody may be trying to trick you into going to " + location + ". If you are sure that is not the case, copy the url to the address bar and proceed"); 80 53 } catch (MalformedURLException me) { 81 response.redirectTo( addDaisyParameters(request.getCocoonRequest(), location));54 response.redirectTo(location); 82 55 } 83 56 } -
trunk/daisy/applications/daisywiki/runtime/src/cocoon/webapp/daisy/sitemap.xmap
r5632 r5636 78 78 <map:action name="HandleSite" src="org.outerj.daisy.frontend.HandleSiteAction"/> 79 79 <map:action name="SessionInvalidate" src="org.apache.cocoon.acting.SessionInvalidatorAction"/> 80 <map:action name="DaisyReset" src="org.outerj.daisy.frontend.DaisyResetAction"/>81 <map:action name="DaisyRedirect" src="org.outerj.daisy.frontend.DaisyRedirectAction"/>82 <map:action name="AddQueryParams" src="org.outerj.daisy.frontend.AddQueryParamsAction"/>83 80 <map:action name="ResourceExists" src="org.apache.cocoon.acting.ResourceExistsAction"/> 84 81 <map:action name="SetVersionHeader" src="org.outerj.daisy.frontend.SetVersionHeaderAction"/> … … 587 584 --> 588 585 <map:match pattern="**;jsessionid=**"> 589 <map:act type="DaisyRedirect"> 590 <map:parameter name="location" value="{1}"/> 591 </map:act> 586 <map:redirect-to uri="{1}"/> 592 587 </map:match> 593 588 … … 627 622 resources pipeline, since there the cache is controlled by the expires parameter of the map:pipeline --> 628 623 <map:act type="SetCacheHeader"/> 629 630 <!-- Clears cookies if there is a query parameter (dsyreset='true') -->631 <map:act type="DaisyReset"/>632 624 633 625 <!-- … … 654 646 655 647 <map:match pattern="admin"> 656 <map:act type="DaisyRedirect"> 657 <map:parameter name="location" value="admin/"/> 658 <map:parameter name="global" value="true/"/> 659 </map:act> 648 <map:redirect-to uri="admin/" global="true"/> 660 649 </map:match> 661 650 … … 734 723 <map:match pattern="logout"> 735 724 <map:act type="SessionInvalidate"/> 736 <map:act type="AddQueryParams"> 737 <map:parameter name="baseUri" value=""/> 738 <map:parameter name="queryParams" value="dsyreset=true"/> 739 </map:act> 740 <map:act type="DaisyRedirect"> 741 <map:parameter name="location" value="{request-attr:redirectUri}"/> 742 </map:act> 725 <map:redirect-to uri=""/> 743 726 </map:match> 744 727 … … 756 739 757 740 <map:match pattern="books"> 758 <map:act type="DaisyRedirect"> 759 <map:parameter name="location" value="books/"/> 760 </map:act> 741 <map:redirect-to uri="books/"/> 761 742 </map:match> 762 743 … … 790 771 791 772 <map:match pattern="*/"> 792 <map:act type="DaisyRedirect"> 793 <map:parameter name="location" value="{request:getAttribute(., 'siteConf')/homePage}"/> 794 </map:act> 773 <map:redirect-to uri="{request:getAttribute(., 'siteConf')/homePage}"/> 795 774 </map:match> 796 775 797 776 <map:match pattern="*/logout"> 798 777 <map:act type="SessionInvalidate"/> 799 <map:act type="AddQueryParams"> 800 <map:parameter name="baseUri" value=""/> 801 <map:parameter name="queryParams" value="dsyreset=true"/> 802 </map:act> 803 <map:act type="DaisyRedirect"> 804 <map:parameter name="location" value="{request-attr:redirectUri}"/> 805 </map:act> 778 <map:redirect-to uri=""/> 806 779 </map:match> 807 780
Note: See TracChangeset
for help on using the changeset viewer.