From f2c52717e904c6875b00258203c3ead306b86304 Mon Sep 17 00:00:00 2001 From: David Gutierrez Date: Tue, 29 Jul 2014 10:43:19 +0200 Subject: [PATCH] BZ-1100150 - Cannot open 'Process & Task Dashboard' under NAT environment --- .../impl/DashboardRendererServiceImpl.java | 24 +++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/jbpm-console-ng-dashboard/jbpm-console-ng-dashboard-backend/src/main/java/org/jbpm/dashboard/renderer/service/impl/DashboardRendererServiceImpl.java b/jbpm-console-ng-dashboard/jbpm-console-ng-dashboard-backend/src/main/java/org/jbpm/dashboard/renderer/service/impl/DashboardRendererServiceImpl.java index e265f45728..7b5cd7fd50 100644 --- a/jbpm-console-ng-dashboard/jbpm-console-ng-dashboard-backend/src/main/java/org/jbpm/dashboard/renderer/service/impl/DashboardRendererServiceImpl.java +++ b/jbpm-console-ng-dashboard/jbpm-console-ng-dashboard-backend/src/main/java/org/jbpm/dashboard/renderer/service/impl/DashboardRendererServiceImpl.java @@ -52,20 +52,36 @@ protected List explodeUrl(String anUrl) { results.add(anUrl); try { - // Get the dashbuilder address (defaults to localhost). + // Get the new address (defaults to localhost). String bindAddress = System.getProperty("dashbuilder.bind.address"); + String bindPort = System.getProperty("dashbuilder.bind.port"); if (StringUtils.isBlank(bindAddress)) { bindAddress = InetAddress.getLocalHost().getHostAddress(); } - // Add the bind address - String host = new URL(anUrl).getHost(); + URL url = new URL(anUrl); + String host = url.getHost(); + int port = url.getPort(); + String newUrl = anUrl; if (!host.equals(bindAddress)) { - results.add(anUrl.replace(host, bindAddress)); + newUrl = newUrl.replace(host, bindAddress); + } + if (!StringUtils.isBlank(bindPort) && port != Integer.parseInt(bindPort)) { + newUrl = newUrl.replace(Integer.toString(port), bindPort); + } + if (!anUrl.equals(newUrl)) { + results.add(newUrl); } } catch (Exception e) { e.printStackTrace(); } return results; } + + public static void main(String[] args) { + DashboardRendererServiceImpl s = new DashboardRendererServiceImpl(); + for (String s1 : s.explodeUrl("http://localhost:8080/dashbuilder/workspace")) { + System.out.println(s1); + } + } }