]> source.dussan.org Git - gitblit.git/commitdiff
replaced RequestUtils.toAbsolutePath() and RedirectRequestTarget
authorMartin Spielmann <martin.spielmann@pingunaut.com>
Sat, 30 Jul 2016 08:45:27 +0000 (10:45 +0200)
committerMartin Spielmann <martin.spielmann@pingunaut.com>
Sat, 30 Jul 2016 08:45:27 +0000 (10:45 +0200)
12 files changed:
src/main/java/com/gitblit/utils/GitBlitRequestUtils.java
src/main/java/com/gitblit/wicket/GitBlitWebSession.java
src/main/java/com/gitblit/wicket/GitblitRedirectException.java
src/main/java/com/gitblit/wicket/GitblitWicketFilter.java
src/main/java/com/gitblit/wicket/SessionlessForm.java
src/main/java/com/gitblit/wicket/pages/BasePage.java
src/main/java/com/gitblit/wicket/pages/ComparePage.java
src/main/java/com/gitblit/wicket/pages/RepositoryPage.java
src/main/java/com/gitblit/wicket/pages/TicketPage.java
src/main/java/com/gitblit/wicket/panels/BranchesPanel.java
src/main/java/com/gitblit/wicket/panels/CommentPanel.java
src/main/java/com/gitblit/wicket/panels/TicketSearchForm.java

index 9a35931030aca72f23298c483d43f2007613113a..7a7e52905f00cbc9f2da510201d4ab9774ba3599 100644 (file)
@@ -3,7 +3,10 @@ package com.gitblit.utils;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import org.apache.wicket.Page;
+import org.apache.wicket.request.Url;
 import org.apache.wicket.request.cycle.RequestCycle;
+import org.apache.wicket.request.mapper.parameter.PageParameters;
 
 public class GitBlitRequestUtils {
        public static HttpServletRequest getServletRequest(){
@@ -13,5 +16,10 @@ public class GitBlitRequestUtils {
        public static HttpServletResponse getServletResponse(){
                return (HttpServletResponse)RequestCycle.get().getResponse().getContainerResponse();
        }
-       
+
+       public static String toAbsoluteUrl(Class<? extends Page> pageClass, PageParameters params){
+               String relativeUrl = RequestCycle.get().urlFor(pageClass, params).toString();
+               return RequestCycle.get().getUrlRenderer().renderFullUrl(Url.parse(relativeUrl));
+       }
 }
+
index 8aa92d2f41a6c4912e602f704007787397e09882..0e53f31565de94694558640b9fc4aca379bd1d41 100644 (file)
@@ -34,6 +34,7 @@ import org.apache.wicket.protocol.http.request.WebClientInfo;
 \r
 import com.gitblit.GitBlitServer.Params;\r
 import com.gitblit.models.UserModel;\r
+import com.gitblit.utils.GitBlitRequestUtils;\r
 \r
 public final class GitBlitWebSession extends WebSession {\r
 \r
@@ -73,10 +74,8 @@ public final class GitBlitWebSession extends WebSession {
                params.getParameterNames().forEach(name->{\r
                        pageParams.add(name, params.getParameterValue(name));\r
                });\r
-               String relativeUrl = RequestCycle.get().urlFor(pageClass, pageParams).toString();\r
-               requestUrl = RequestUtils.toAbsolutePath(relativeUrl);\r
-//             String relativeUrl = RequestCycle.get().urlFor(pageClass, pageParams).toString();\r
-//             requestUrl = RequestCycle.get().getUrlRenderer().renderFullUrl(Url.parse(relativeUrl));\r
+               requestUrl = GitBlitRequestUtils.toAbsoluteUrl(pageClass, pageParams);\r
+\r
                \r
                if (isTemporary())\r
                {\r
index 9eb76bfd2652157a4699ca1a7b243e922db51b65..13e246a3470429a857a9e58ce796cede71c578b3 100644 (file)
  */
 package com.gitblit.wicket;
 
-//import org.apache.wicket.AbstractRestartResponseException;
 import org.apache.wicket.Page;
 import org.apache.wicket.RestartResponseException;
-//import org.apache.wicket.request.cycle.RequestCycle;
+import org.apache.wicket.request.cycle.RequestCycle;
+import org.apache.wicket.request.http.handler.RedirectRequestHandler;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
-//import org.apache.wicket.protocol.http.RequestUtils;
-//import org.apache.wicket.request.target.basic.RedirectRequestTarget;
+
+import com.gitblit.utils.GitBlitRequestUtils;
 
 /**
  * This exception bypasses the servlet container rewriting relative redirect
@@ -42,10 +42,8 @@ public class GitblitRedirectException extends RestartResponseException {
 
        public <C extends Page> GitblitRedirectException(Class<C> pageClass, PageParameters params) {
                super(pageClass, params);
-//             RequestCycle cycle = RequestCycle.get();
-//             String relativeUrl = cycle.urlFor(pageClass, params).toString();
-//             String absoluteUrl = RequestUtils.toAbsolutePath(relativeUrl);
-//             cycle.setRequestTarget(new RedirectRequestTarget(absoluteUrl));
-//             cycle.setRedirect(true);
+               RequestCycle cycle = RequestCycle.get();
+               String absoluteUrl = GitBlitRequestUtils.toAbsoluteUrl(pageClass,params);
+               cycle.scheduleRequestHandlerAfterCurrent(new RedirectRequestHandler(absoluteUrl));      
        }
 }
index 9ada7dc65bcb9df846a217699e6e42fc0987902b..8286acfce80d583364aef695d9050b540e7e4ebf 100644 (file)
@@ -129,7 +129,7 @@ public class GitblitWicketFilter extends WicketFilter {
 \r
                repo = repo.replace("%2f", "/").replace("%2F", "/").replace(settings.getChar(Keys.web.forwardSlashCharacter, '/'), '/');\r
 \r
-               GitBlitWebApp app = (GitBlitWebApp) getWebApplication();\r
+               GitBlitWebApp app = (GitBlitWebApp) getApplication();\r
                int expires = settings.getInteger(Keys.web.pageCacheExpires, 0);\r
                if (!StringUtils.isEmpty(page) && app.isCacheablePage(page) && expires > 0) {\r
                        // page can be cached by the browser\r
index 0d66ebe8c801bfced4dd821bf04dc6d9ac224ec5..93a8d0fe6248260313739f51424be02aff05bda0 100644 (file)
@@ -30,6 +30,7 @@ import org.apache.wicket.util.string.Strings;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import com.gitblit.utils.GitBlitRequestUtils;
 import com.gitblit.wicket.pages.BasePage;
 
 /**
@@ -152,8 +153,6 @@ public class SessionlessForm<T> extends StatelessForm<T> {
        }
 
        protected String getAbsoluteUrl(Class<? extends BasePage> pageClass, PageParameters pageParameters) {
-               String relativeUrl = urlFor(pageClass, pageParameters).toString();
-               String absoluteUrl = RequestUtils.toAbsolutePath(relativeUrl);
-               return absoluteUrl;
+               return GitBlitRequestUtils.toAbsoluteUrl(pageClass, pageParameters);
        }
 }
index e858d5e19b24537b6d8922934af3fed2aa043c01..1b44e87578f7e3dd36c74eb4a6ee98c15792405c 100644 (file)
@@ -38,6 +38,7 @@ import org.apache.wicket.Application;
 import org.apache.wicket.Page;\r
 import org.apache.wicket.request.flow.RedirectToUrlException;\r
 import org.apache.wicket.request.http.WebResponse;\r
+import org.apache.wicket.request.http.handler.RedirectRequestHandler;\r
 import org.apache.wicket.request.mapper.parameter.PageParameters;\r
 import org.apache.wicket.request.resource.CssPackageResource;\r
 import org.apache.wicket.request.resource.JavaScriptResourceReference;\r
@@ -49,7 +50,6 @@ import org.apache.wicket.markup.html.resources.JavascriptResourceReference;
 import org.apache.wicket.markup.repeater.RepeatingView;\r
 import org.apache.wicket.protocol.http.RequestUtils;\r
 import org.apache.wicket.protocol.http.servlet.ServletWebRequest;\r
-import org.apache.wicket.request.target.basic.RedirectRequestTarget;\r
 import org.apache.wicket.util.time.Duration;\r
 import org.apache.wicket.util.time.Time;\r
 import org.slf4j.Logger;\r
@@ -113,9 +113,7 @@ public abstract class BasePage extends SessionPage {
        }\r
 \r
        protected String getCanonicalUrl(Class<? extends BasePage> clazz, PageParameters params) {\r
-               String relativeUrl = urlFor(clazz, params).toString();\r
-               String canonicalUrl = RequestUtils.toAbsolutePath(relativeUrl);\r
-               return canonicalUrl;\r
+               return GitBlitRequestUtils.toAbsoluteUrl(clazz, params);\r
        }\r
 \r
        protected void redirectTo(Class<? extends BasePage> pageClass) {\r
@@ -124,7 +122,7 @@ public abstract class BasePage extends SessionPage {
 \r
        protected void redirectTo(Class<? extends BasePage> pageClass, PageParameters parameters) {\r
                String absoluteUrl = getCanonicalUrl(pageClass, parameters);\r
-               getRequestCycle().setRequestTarget(new RedirectRequestTarget(absoluteUrl));\r
+               getRequestCycle().scheduleRequestHandlerAfterCurrent(new RedirectRequestHandler(absoluteUrl));\r
        }\r
 \r
        protected String getLanguageCode() {\r
@@ -230,7 +228,7 @@ public abstract class BasePage extends SessionPage {
                int expires = app().settings().getInteger(Keys.web.pageCacheExpires, 0);\r
                WebResponse response = (WebResponse) getResponse();\r
                response.setLastModifiedTime(Time.valueOf(when));\r
-               response.setDateHeader("Expires", System.currentTimeMillis() + Duration.minutes(expires).getMilliseconds());\r
+               response.addHeader("Expires", String.valueOf(System.currentTimeMillis() + Duration.minutes(expires).getMilliseconds()));\r
        }\r
 \r
        protected String getPageTitle(String repositoryName) {\r
@@ -469,8 +467,7 @@ public abstract class BasePage extends SessionPage {
                }\r
                if (toPage != null) {\r
                        GitBlitWebSession.get().cacheErrorMessage(message);\r
-                       String relativeUrl = urlFor(toPage, params).toString();\r
-                       String absoluteUrl = RequestUtils.toAbsolutePath(relativeUrl);\r
+                       String absoluteUrl = GitBlitRequestUtils.toAbsoluteUrl(toPage, params);\r
                        throw new RedirectToUrlException(absoluteUrl);\r
                } else {\r
                        super.error(message);\r
@@ -478,7 +475,7 @@ public abstract class BasePage extends SessionPage {
        }\r
 \r
        public void authenticationError(String message) {\r
-               logger().error(getRequest().getURL() + " for " + GitBlitWebSession.get().getUsername());\r
+               logger().error(getRequest().getUrl() + " for " + GitBlitWebSession.get().getUsername());\r
                if (!GitBlitWebSession.get().isLoggedIn()) {\r
                        // cache the request if we have not authenticated.\r
                        // the request will continue after authentication.\r
index 2d1be64f3368c795565f20c9bafb697a23e5a542..bbf866c04d79f4601c8ed0400af8fe27a7b3112b 100644 (file)
@@ -19,6 +19,7 @@ import java.text.MessageFormat;
 import java.util.ArrayList;
 import java.util.List;
 
+import org.apache.wicket.request.http.handler.RedirectRequestHandler;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.form.CheckBox;
@@ -33,7 +34,6 @@ import org.apache.wicket.markup.repeater.data.ListDataProvider;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
 import org.apache.wicket.protocol.http.RequestUtils;
-//import org.apache.wicket.request.target.basic.RedirectRequestTarget;
 import org.eclipse.jgit.diff.DiffEntry.ChangeType;
 import org.eclipse.jgit.lib.Repository;
 import org.eclipse.jgit.revwalk.RevCommit;
@@ -45,6 +45,7 @@ import com.gitblit.models.RepositoryModel;
 import com.gitblit.models.SubmoduleModel;
 import com.gitblit.servlet.RawServlet;
 import com.gitblit.utils.DiffUtils;
+import com.gitblit.utils.GitBlitRequestUtils;
 import com.gitblit.utils.DiffUtils.DiffComparator;
 import com.gitblit.utils.DiffUtils.DiffOutput;
 import com.gitblit.utils.DiffUtils.DiffOutputType;
@@ -236,12 +237,11 @@ public class ComparePage extends RepositoryPage {
 
                                PageParameters params = WicketUtils.newRangeParameter(repositoryName, from, to);
                                if (ignoreWS) {
-                                       params.put("w", 1);
+                                       params.add("w", 1);
                                }
 
-                               String relativeUrl = urlFor(ComparePage.class, params).toString();
-                               String absoluteUrl = RequestUtils.toAbsolutePath(relativeUrl);
-                               getRequestCycle().setRequestTarget(new RedirectRequestTarget(absoluteUrl));
+                               String absoluteUrl = GitBlitRequestUtils.toAbsoluteUrl(ComparePage.class, params);
+                               getRequestCycle().scheduleRequestHandlerAfterCurrent(new RedirectRequestHandler(absoluteUrl));
                        }
                };
 
@@ -278,11 +278,10 @@ public class ComparePage extends RepositoryPage {
 
                                PageParameters params = WicketUtils.newRangeParameter(repositoryName, from, to);
                                if (ignoreWS) {
-                                       params.put("w", 1);
+                                       params.add("w", 1);
                                }
-                               String relativeUrl = urlFor(ComparePage.class, params).toString();
-                               String absoluteUrl = RequestUtils.toAbsolutePath(relativeUrl);
-                               getRequestCycle().setRequestTarget(new RedirectRequestTarget(absoluteUrl));
+                               String absoluteUrl = GitBlitRequestUtils.toAbsoluteUrl(ComparePage.class, params);
+                               getRequestCycle().scheduleRequestHandlerAfterCurrent(new RedirectRequestHandler(absoluteUrl));
                        }
                };
 
index d351bc70cd852f93dceaa389637d2430d8f9769c..dd8df4a3e782b3ed2297785363f2efe7339de92f 100644 (file)
@@ -28,6 +28,7 @@ import java.util.Set;
 \r
 import org.apache.wicket.AttributeModifier;\r
 import org.apache.wicket.Component;\r
+import org.apache.wicket.request.http.handler.RedirectRequestHandler;\r
 import org.apache.wicket.request.mapper.parameter.PageParameters;\r
 import org.apache.wicket.RestartResponseException;\r
 import org.apache.wicket.markup.html.basic.Label;\r
@@ -37,7 +38,6 @@ import org.apache.wicket.markup.html.link.ExternalLink;
 import org.apache.wicket.markup.html.panel.Fragment;\r
 import org.apache.wicket.model.IModel;\r
 import org.apache.wicket.model.Model;\r
-//import org.apache.wicket.request.target.basic.RedirectRequestTarget;\r
 import org.eclipse.jgit.diff.DiffEntry.ChangeType;\r
 import org.eclipse.jgit.lib.PersonIdent;\r
 import org.eclipse.jgit.lib.Repository;\r
@@ -63,6 +63,7 @@ import com.gitblit.servlet.SyndicationServlet;
 import com.gitblit.utils.ArrayUtils;\r
 import com.gitblit.utils.BugtraqProcessor;\r
 import com.gitblit.utils.DeepCopier;\r
+import com.gitblit.utils.GitBlitRequestUtils;\r
 import com.gitblit.utils.JGitUtils;\r
 import com.gitblit.utils.ModelUtils;\r
 import com.gitblit.utils.RefLogUtils;\r
@@ -763,7 +764,7 @@ public abstract class RepositoryPage extends RootPage {
                        if (StringUtils.isEmpty(searchString)) {\r
                                // redirect to self to avoid wicket page update bug\r
                                String absoluteUrl = getCanonicalUrl();\r
-                               getRequestCycle().setRequestTarget(new RedirectRequestTarget(absoluteUrl));\r
+                               getRequestCycle().scheduleRequestHandlerAfterCurrent(new RedirectRequestHandler(absoluteUrl));\r
                                return;\r
                        }\r
                        for (Constants.SearchType type : Constants.SearchType.values()) {\r
@@ -785,7 +786,7 @@ public abstract class RepositoryPage extends RootPage {
                        // mounted url parameters (issue-111)\r
                        PageParameters params = WicketUtils.newSearchParameter(repositoryName, null, searchString, searchType);\r
                        String absoluteUrl = getCanonicalUrl(searchPageClass, params);\r
-                       getRequestCycle().setRequestTarget(new RedirectRequestTarget(absoluteUrl));\r
+                       getRequestCycle().scheduleRequestHandlerAfterCurrent(new RedirectRequestHandler(absoluteUrl));\r
                }\r
        }\r
 }\r
index 53671b73acf1fad01d004aeb8294dbb2701a306b..3ce5484eecaf294db1ed1f14f8014b438cd0c4f3 100644 (file)
@@ -1722,8 +1722,7 @@ public class TicketPage extends RepositoryPage {
                                }\r
                                \r
                                //Force reload of the page to rebuild ticket change cache\r
-                               String relativeUrl = urlFor(TicketsPage.class, getPageParameters()).toString();\r
-                               String absoluteUrl = RequestUtils.toAbsolutePath(relativeUrl);\r
+                               String absoluteUrl = GitBlitRequestUtils.toAbsoluteUrl(TicketsPage.class, getPageParameters());\r
                                setResponsePage(new RedirectPage(absoluteUrl));\r
                        }\r
                };\r
index 93dd14936a58c009b705abff85d090dda4758558..bc5cd8dfe7468d4c3a30701c3b344fe060e1376e 100644 (file)
@@ -21,6 +21,7 @@ import java.util.ArrayList;
 import java.util.Collections;\r
 import java.util.List;\r
 \r
+import org.apache.wicket.request.http.handler.RedirectRequestHandler;\r
 import org.apache.wicket.request.mapper.parameter.PageParameters;\r
 import org.apache.wicket.markup.html.basic.Label;\r
 import org.apache.wicket.markup.html.link.BookmarkablePageLink;\r
@@ -32,7 +33,6 @@ import org.apache.wicket.markup.repeater.data.DataView;
 import org.apache.wicket.markup.repeater.data.ListDataProvider;\r
 import org.apache.wicket.model.StringResourceModel;\r
 import org.apache.wicket.protocol.http.RequestUtils;\r
-//import org.apache.wicket.request.target.basic.RedirectRequestTarget;\r
 import org.eclipse.jgit.lib.Ref;\r
 import org.eclipse.jgit.lib.Repository;\r
 \r
@@ -43,6 +43,7 @@ import com.gitblit.models.UserModel;
 import com.gitblit.servlet.RawServlet;\r
 import com.gitblit.servlet.SyndicationServlet;\r
 import com.gitblit.utils.CommitCache;\r
+import com.gitblit.utils.GitBlitRequestUtils;\r
 import com.gitblit.utils.JGitUtils;\r
 import com.gitblit.utils.RefLogUtils;\r
 import com.gitblit.utils.StringUtils;\r
@@ -231,9 +232,8 @@ public class BranchesPanel extends BasePanel {
 \r
                                // redirect to the owning page\r
                                PageParameters params = WicketUtils.newRepositoryParameter(repositoryModel.name);\r
-                               String relativeUrl = urlFor(getPage().getClass(), params).toString();\r
-                               String absoluteUrl = RequestUtils.toAbsolutePath(relativeUrl);\r
-                               getRequestCycle().setRequestTarget(new RedirectRequestTarget(absoluteUrl));\r
+                               String absoluteUrl = GitBlitRequestUtils.toAbsoluteUrl(getPage().getClass(), params);\r
+                               getRequestCycle().scheduleRequestHandlerAfterCurrent(new RedirectRequestHandler(absoluteUrl));\r
                        }\r
                };\r
 \r
index 93d2b840e18b6fe4aee8e59b5f9b32e121a2dc90..3de0734631c82db887895cb1d3e4b72ba37a2be1 100644 (file)
@@ -15,6 +15,7 @@
  */
 package com.gitblit.wicket.panels;
 
+import org.apache.wicket.request.http.handler.RedirectRequestHandler;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.ajax.AjaxRequestTarget;
 import org.apache.wicket.ajax.markup.html.form.AjaxButton;
@@ -22,12 +23,11 @@ import org.apache.wicket.markup.html.basic.Label;
 import org.apache.wicket.markup.html.form.Form;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
-import org.apache.wicket.protocol.http.RequestUtils;
-//import org.apache.wicket.request.target.basic.RedirectRequestTarget;
 
 import com.gitblit.models.RepositoryModel;
 import com.gitblit.models.TicketModel;
 import com.gitblit.models.TicketModel.Change;
+import com.gitblit.utils.GitBlitRequestUtils;
 import com.gitblit.models.UserModel;
 import com.gitblit.wicket.WicketUtils;
 import com.gitblit.wicket.pages.BasePage;
@@ -103,9 +103,8 @@ public class CommentPanel extends BasePanel {
              */
             private void redirectTo(Class<? extends BasePage> pageClass, PageParameters parameters)
             {
-                String relativeUrl = urlFor(pageClass, parameters).toString();
-                String canonicalUrl = RequestUtils.toAbsolutePath(relativeUrl);
-                getRequestCycle().setRequestTarget(new RedirectRequestTarget(canonicalUrl));
+               String absoluteUrl = GitBlitRequestUtils.toAbsoluteUrl(pageClass, parameters);
+                               getRequestCycle().scheduleRequestHandlerAfterCurrent(new RedirectRequestHandler(absoluteUrl));
             }
                        
                }.setVisible(ticket != null && ticket.number > 0));
index 32f133d1c1e20d98c4840b670ada3378d742e662..75a12dc5e54f3f2e13fc749922b7c3eadc3af10b 100644 (file)
@@ -18,11 +18,11 @@ package com.gitblit.wicket.panels;
 import java.io.Serializable;
 import java.text.MessageFormat;
 
+import org.apache.wicket.request.http.handler.RedirectRequestHandler;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.markup.html.form.TextField;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.model.Model;
-//import org.apache.wicket.request.target.basic.RedirectRequestTarget;
 
 import com.gitblit.utils.StringUtils;
 import com.gitblit.wicket.SessionlessForm;
@@ -64,7 +64,7 @@ public class TicketSearchForm extends SessionlessForm<Void> implements Serializa
                if (StringUtils.isEmpty(searchString)) {
                        // redirect to self to avoid wicket page update bug
                        String absoluteUrl = getAbsoluteUrl();
-                       getRequestCycle().setRequestTarget(new RedirectRequestTarget(absoluteUrl));
+                       getRequestCycle().scheduleRequestHandlerAfterCurrent(new RedirectRequestHandler(absoluteUrl));
                        return;
                }
 
@@ -73,6 +73,6 @@ public class TicketSearchForm extends SessionlessForm<Void> implements Serializa
                PageParameters params = WicketUtils.newRepositoryParameter(repositoryName);
                params.add("s", searchString);
                String absoluteUrl = getAbsoluteUrl(pageClass, params);
-               getRequestCycle().setRequestTarget(new RedirectRequestTarget(absoluteUrl));
+               getRequestCycle().scheduleRequestHandlerAfterCurrent(new RedirectRequestHandler(absoluteUrl));
        }
 }