forked from Archives/Athou_commafeed
preserve https across redirections if it was set
This commit is contained in:
@@ -31,6 +31,7 @@ import org.apache.wicket.markup.html.WebPage;
|
||||
import org.apache.wicket.request.IRequestHandler;
|
||||
import org.apache.wicket.request.Request;
|
||||
import org.apache.wicket.request.Response;
|
||||
import org.apache.wicket.request.Url;
|
||||
import org.apache.wicket.request.component.IRequestableComponent;
|
||||
import org.apache.wicket.request.cycle.AbstractRequestCycleListener;
|
||||
import org.apache.wicket.request.cycle.RequestCycle;
|
||||
@@ -44,6 +45,7 @@ import com.commafeed.frontend.pages.NextUnreadRedirectPage;
|
||||
import com.commafeed.frontend.pages.PasswordRecoveryCallbackPage;
|
||||
import com.commafeed.frontend.pages.PasswordRecoveryPage;
|
||||
import com.commafeed.frontend.pages.WelcomePage;
|
||||
import com.commafeed.frontend.utils.WicketUtils;
|
||||
import com.commafeed.frontend.utils.exception.DisplayExceptionPage;
|
||||
|
||||
@Slf4j
|
||||
@@ -151,6 +153,13 @@ public class CommaFeedApplication extends AuthenticatedWebApplication {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void restartResponseAtSignInPage() {
|
||||
// preserve https if it was set
|
||||
RequestCycle.get().getUrlRenderer().setBaseUrl(Url.parse(WicketUtils.getClientFullUrl()));
|
||||
super.restartResponseAtSignInPage();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Session newSession(Request request, Response response) {
|
||||
return new CommaFeedSession(request);
|
||||
|
||||
@@ -44,4 +44,19 @@ public class WicketUtils {
|
||||
WebResponse webResponse = (WebResponse) RequestCycle.get().getResponse();
|
||||
return (HttpServletResponse) webResponse.getContainerResponse();
|
||||
}
|
||||
|
||||
/**
|
||||
* like wicket's Request.getClientUrl() but returns an absolute url instead of a relative one
|
||||
*/
|
||||
public static String getClientFullUrl() {
|
||||
HttpServletRequest request = getHttpServletRequest();
|
||||
StringBuffer requestURL = request.getRequestURL();
|
||||
String queryString = request.getQueryString();
|
||||
|
||||
if (queryString == null) {
|
||||
return requestURL.toString();
|
||||
} else {
|
||||
return requestURL.append('?').append(queryString).toString();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user