public void redirectToRequestedPage() {
try {
Optional<String> redirectTo = oAuthRedirection.getAndDelete(request, response);
- getResponse().sendRedirect(redirectTo.orElse(server.getContextPath() + "/"));
+ getResponse().sendRedirect(server.getContextPath() + redirectTo.orElse("/"));
} catch (IOException e) {
throw new IllegalStateException("Fail to redirect to home", e);
}
public class OAuth2Redirection {
private static final String REDIRECT_TO_COOKIE = "REDIRECT_TO";
-
- /**
- * The HTTP parameter that contains the path where the user should be redirect to.
- * Please note that the web context is included.
- */
private static final String RETURN_TO_PARAMETER = "return_to";
public void create(HttpServletRequest request, HttpServletResponse response) {
}
@Test
- public void redirect_to_requested_page_doesnt_need_context() throws Exception {
- when(oAuthRedirection.getAndDelete(request, response)).thenReturn(Optional.of("/sonarqube/settings"));
- when(server.getContextPath()).thenReturn("/other");
+ public void redirect_to_requested_page_context() throws Exception {
+ when(oAuthRedirection.getAndDelete(request, response)).thenReturn(Optional.of("/settings"));
+ when(server.getContextPath()).thenReturn("/sonarqube");
OAuth2IdentityProvider.CallbackContext callback = newCallbackContext();
callback.redirectToRequestedPage();