From fee4b1cdc1a1bf4ac3dfdbbf435a5696540ce59a Mon Sep 17 00:00:00 2001 From: Vitalii Diravka Date: Sat, 23 Feb 2019 21:51:48 +0200 Subject: DRILL-7052: Relative path for URL redirection --- .../yarn/appMaster/http/AuthDynamicFeature.java | 6 ++-- .../drill/yarn/appMaster/http/WebUiPageTree.java | 2 +- drill-yarn/src/main/resources/drill-am/login.ftl | 2 +- .../exec/server/rest/LogInLogOutResources.java | 2 +- .../exec/server/rest/auth/AuthDynamicFeature.java | 5 ++- exec/java-exec/src/main/resources/rest/login.ftl | 37 +++++++++++----------- .../src/main/resources/rest/mainLogin.ftl | 26 +++++++-------- 7 files changed, 38 insertions(+), 42 deletions(-) diff --git a/drill-yarn/src/main/java/org/apache/drill/yarn/appMaster/http/AuthDynamicFeature.java b/drill-yarn/src/main/java/org/apache/drill/yarn/appMaster/http/AuthDynamicFeature.java index c882fe027..3a1747842 100644 --- a/drill-yarn/src/main/java/org/apache/drill/yarn/appMaster/http/AuthDynamicFeature.java +++ b/drill-yarn/src/main/java/org/apache/drill/yarn/appMaster/http/AuthDynamicFeature.java @@ -33,7 +33,6 @@ import javax.ws.rs.container.ResourceInfo; import javax.ws.rs.core.FeatureContext; import javax.ws.rs.core.Response; import javax.ws.rs.core.SecurityContext; -import java.io.IOException; import java.net.URI; import java.net.URLEncoder; @@ -83,13 +82,12 @@ public class AuthDynamicFeature implements DynamicFeature { private static AuthCheckFilter INSTANCE = new AuthCheckFilter(); @Override - public void filter(ContainerRequestContext requestContext) - throws IOException { + public void filter(ContainerRequestContext requestContext) { final SecurityContext sc = requestContext.getSecurityContext(); if (!isUserLoggedIn(sc)) { try { final String destResource = URLEncoder.encode( - requestContext.getUriInfo().getRequestUri().toString(), "UTF-8"); + requestContext.getUriInfo().getRequestUri().getPath(), "UTF-8"); final URI loginURI = requestContext.getUriInfo().getBaseUriBuilder() .path(LogInLogOutPages.LOGIN_RESOURCE) .queryParam(LogInLogOutPages.REDIRECT_QUERY_PARM, destResource) diff --git a/drill-yarn/src/main/java/org/apache/drill/yarn/appMaster/http/WebUiPageTree.java b/drill-yarn/src/main/java/org/apache/drill/yarn/appMaster/http/WebUiPageTree.java index fc44e4577..58a59d382 100644 --- a/drill-yarn/src/main/java/org/apache/drill/yarn/appMaster/http/WebUiPageTree.java +++ b/drill-yarn/src/main/java/org/apache/drill/yarn/appMaster/http/WebUiPageTree.java @@ -117,7 +117,7 @@ public class WebUiPageTree extends PageTree { final HttpSession session = request.getSession(true); final URI destURI = UriBuilder .fromUri(URLDecoder.decode(redirect, "UTF-8")).build(); - session.setAttribute(FormAuthenticator.__J_URI, destURI.toString()); + session.setAttribute(FormAuthenticator.__J_URI, destURI.getPath()); } return new Viewable("/drill-am/login.ftl", toModel(sc, (Object) null)); diff --git a/drill-yarn/src/main/resources/drill-am/login.ftl b/drill-yarn/src/main/resources/drill-am/login.ftl index 3f34a51b3..e7fdc48ee 100644 --- a/drill-yarn/src/main/resources/drill-am/login.ftl +++ b/drill-yarn/src/main/resources/drill-am/login.ftl @@ -40,4 +40,4 @@ -<@page_html/> \ No newline at end of file +<@page_html/> diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/LogInLogOutResources.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/LogInLogOutResources.java index 324b7018b..0abe2c5b4 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/LogInLogOutResources.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/LogInLogOutResources.java @@ -69,7 +69,7 @@ public class LogInLogOutResources { // is forwarded to the redirect page. final HttpSession session = request.getSession(true); final URI destURI = UriBuilder.fromUri(URLDecoder.decode(redirect, "UTF-8")).build(); - session.setAttribute(FormAuthenticator.__J_URI, destURI.toString()); + session.setAttribute(FormAuthenticator.__J_URI, destURI.getPath()); } } diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/auth/AuthDynamicFeature.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/auth/AuthDynamicFeature.java index 7bcf430cb..fc6952116 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/auth/AuthDynamicFeature.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/auth/AuthDynamicFeature.java @@ -31,7 +31,6 @@ import javax.ws.rs.container.ResourceInfo; import javax.ws.rs.core.FeatureContext; import javax.ws.rs.core.Response; import javax.ws.rs.core.SecurityContext; -import java.io.IOException; import java.net.URI; import java.net.URLEncoder; @@ -75,12 +74,12 @@ public class AuthDynamicFeature implements DynamicFeature { private static AuthCheckFilter INSTANCE = new AuthCheckFilter(); @Override - public void filter(ContainerRequestContext requestContext) throws IOException { + public void filter(ContainerRequestContext requestContext) { final SecurityContext sc = requestContext.getSecurityContext(); if (!isUserLoggedIn(sc)) { try { final String destResource = - URLEncoder.encode(requestContext.getUriInfo().getRequestUri().toString(), "UTF-8"); + URLEncoder.encode(requestContext.getUriInfo().getRequestUri().getPath(), "UTF-8"); final URI loginURI = requestContext.getUriInfo().getBaseUriBuilder() .path(WebServerConstants.MAIN_LOGIN_RESOURCE_NAME) .queryParam(WebServerConstants.REDIRECT_QUERY_PARM, destResource) diff --git a/exec/java-exec/src/main/resources/rest/login.ftl b/exec/java-exec/src/main/resources/rest/login.ftl index 790c93496..19cd12b8a 100644 --- a/exec/java-exec/src/main/resources/rest/login.ftl +++ b/exec/java-exec/src/main/resources/rest/login.ftl @@ -22,23 +22,22 @@ <#macro page_body> - -
-
-
-
- Apache Drill Logo - <#if model??> -

${model}


- -

Log In to Drill Web Console


-

-

-

-
- -
-
-
+ +
+
+
+
+ Apache Drill Logo + <#if model??> +

${model}


+ +

Log In to Drill Web Console


+

+

+

+
+
+
+
-<@page_html/> \ No newline at end of file +<@page_html/> diff --git a/exec/java-exec/src/main/resources/rest/mainLogin.ftl b/exec/java-exec/src/main/resources/rest/mainLogin.ftl index 1e3a5a9a9..64f1fee89 100644 --- a/exec/java-exec/src/main/resources/rest/mainLogin.ftl +++ b/exec/java-exec/src/main/resources/rest/mainLogin.ftl @@ -22,20 +22,20 @@ <#macro page_body> - -
-
- <#if model?? && model.isFormEnabled()> + +
+
+ <#if model?? && model.isFormEnabled()> Login using FORM AUTHENTICATION - - <#if model?? && model.isSpnegoEnabled()> + + <#if model?? && model.isSpnegoEnabled()> Login using SPNEGO - - <#if model?? && model.getError()??> + + <#if model?? && model.getError()??>

${model.getError()}


- -
-
+ +
+
-<@page_html/> \ No newline at end of file +<@page_html/> -- cgit v1.2.3