You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nifi.apache.org by ex...@apache.org on 2024/08/31 13:59:42 UTC
(nifi) branch main updated: NIFI-13695 Fixed Redirect Handling for Custom UI Extensions
This is an automated email from the ASF dual-hosted git repository.
exceptionfactory pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/nifi.git
The following commit(s) were added to refs/heads/main by this push:
new 31a3014696 NIFI-13695 Fixed Redirect Handling for Custom UI Extensions
31a3014696 is described below
commit 31a301469612807413c1322edb4d11b2f97ff869
Author: Matt Gilman <ma...@gmail.com>
AuthorDate: Fri Aug 30 10:20:23 2024 -0400
NIFI-13695 Fixed Redirect Handling for Custom UI Extensions
Appending a trailing slash when opening a custom UI and in the query string to fragment filter to avoid a Jetty-based redirect that could lead to losing the proxy path.
This closes #9222
Signed-off-by: David Handermann <ex...@apache.org>
---
.../apache/nifi/web/servlet/filter/QueryStringToFragmentFilter.java | 3 ++-
.../apps/nifi/src/app/ui/common/advanced-ui/advanced-ui.component.ts | 2 +-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/nifi-commons/nifi-web-servlet-shared/src/main/java/org/apache/nifi/web/servlet/filter/QueryStringToFragmentFilter.java b/nifi-commons/nifi-web-servlet-shared/src/main/java/org/apache/nifi/web/servlet/filter/QueryStringToFragmentFilter.java
index e6f9a967c8..4113aabbda 100644
--- a/nifi-commons/nifi-web-servlet-shared/src/main/java/org/apache/nifi/web/servlet/filter/QueryStringToFragmentFilter.java
+++ b/nifi-commons/nifi-web-servlet-shared/src/main/java/org/apache/nifi/web/servlet/filter/QueryStringToFragmentFilter.java
@@ -40,7 +40,8 @@ public class QueryStringToFragmentFilter implements Filter {
// Some NiFi front ends use hash based routing, so they don't need to know the baseHref. With hash based
// routing query parameters are implemented within the URL fragment. Because of this any query parameters on the
// original URL are not considered. This filter captures those and adds them to the fragment.
- final RequestUriBuilder requestUriBuilder = RequestUriBuilder.fromHttpServletRequest(httpServletRequest).path(httpServletRequest.getContextPath()).fragment("/?" + queryString);
+ final String contextPath = httpServletRequest.getContextPath() + "/";
+ final RequestUriBuilder requestUriBuilder = RequestUriBuilder.fromHttpServletRequest(httpServletRequest).path(contextPath).fragment("/?" + queryString);
final URI redirectUri = requestUriBuilder.build();
final HttpServletResponse httpServletResponse = (HttpServletResponse) response;
diff --git a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/advanced-ui/advanced-ui.component.ts b/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/advanced-ui/advanced-ui.component.ts
index bb7258edac..6481897d12 100644
--- a/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/advanced-ui/advanced-ui.component.ts
+++ b/nifi-frontend/src/main/frontend/apps/nifi/src/app/ui/common/advanced-ui/advanced-ui.component.ts
@@ -81,7 +81,7 @@ export class AdvancedUi {
.set('editable', params.editable)
.set('disconnectedNodeAcknowledged', params.disconnectedNodeAcknowledged)
.toString();
- const url = `${params.url}?${queryParams}`;
+ const url = `${params.url}/?${queryParams}`;
const sanitizedUrl = this.domSanitizer.sanitize(SecurityContext.URL, url);