You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@knox.apache.org by lm...@apache.org on 2026/03/15 20:28:49 UTC

(knox) branch master updated: KNOX-3243 : Added Ambari 3.0.0 support (#1140)

This is an automated email from the ASF dual-hosted git repository.

lmccay pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/knox.git


The following commit(s) were added to refs/heads/master by this push:
     new 532c436d0 KNOX-3243 : Added Ambari 3.0.0 support (#1140)
532c436d0 is described below

commit 532c436d01b6cdae77ac086b2abdd13a97572359
Author: HARSHITH GANDHE <86...@users.noreply.github.com>
AuthorDate: Mon Mar 16 01:58:44 2026 +0530

    KNOX-3243 : Added Ambari 3.0.0 support (#1140)
    
    Co-authored-by: Harshith Gandhe <ha...@acceldata.io>
---
 .../resources/services/ambari/3.0.0/rewrite.xml    |  39 +++++
 .../resources/services/ambari/3.0.0/service.xml    |  66 +++++++++
 .../resources/services/ambariui/3.0.0/rewrite.xml  | 158 +++++++++++++++++++++
 .../resources/services/ambariui/3.0.0/service.xml  | 107 ++++++++++++++
 .../resources/services/ambariws/3.0.0/rewrite.xml  |  25 ++++
 .../resources/services/ambariws/3.0.0/service.xml  |  33 +++++
 6 files changed, 428 insertions(+)

diff --git a/gateway-service-definitions/src/main/resources/services/ambari/3.0.0/rewrite.xml b/gateway-service-definitions/src/main/resources/services/ambari/3.0.0/rewrite.xml
new file mode 100644
index 000000000..7cfc67012
--- /dev/null
+++ b/gateway-service-definitions/src/main/resources/services/ambari/3.0.0/rewrite.xml
@@ -0,0 +1,39 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<rules>
+    <rule dir="IN" name="AMBARI/ambari/inbound" pattern="*://*:*/**/ambari/api/v1/{**}?{**}">
+        <rewrite template="{$serviceUrl[AMBARI]}/api/v1/{**}?{**}"/>
+    </rule>
+    <rule dir="OUT" name="AMBARI/ambari/href/outbound">
+        <match pattern="*://*:*/api/{**}?{**}"/>
+        <rewrite template="{$frontend[url]}/ambari/api/{**}?{**}"/>
+    </rule>
+    <rule dir="OUT" name="AMBARI/ambari/context_path/outbound">
+        <match pattern="/{**}"/>
+        <rewrite template="{$frontend[path]}/ambari/{**}"/>
+    </rule>
+    <filter name="AMBARI/ambari/api/outbound">
+        <content type="text/plain" asType="application/json">
+            <apply path="$.**.href" rule="AMBARI/ambari/href/outbound"/>
+            <apply path="$.**.context_path" rule="AMBARI/ambari/context_path/outbound"/>
+        </content>
+    </filter>
+    <filter name="AMBARI/ambari/api/inbound">
+        <content type="application/x-www-form-urlencoded" asType="application/octet-stream">
+        </content>
+    </filter>
+</rules>
\ No newline at end of file
diff --git a/gateway-service-definitions/src/main/resources/services/ambari/3.0.0/service.xml b/gateway-service-definitions/src/main/resources/services/ambari/3.0.0/service.xml
new file mode 100644
index 000000000..dffa459c4
--- /dev/null
+++ b/gateway-service-definitions/src/main/resources/services/ambari/3.0.0/service.xml
@@ -0,0 +1,66 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<service role="AMBARI" name="ambari" version="3.0.0">
+    <metadata>
+        <type>API</type>
+        <context>/ambari/api</context>
+        <shortDesc>Apache Ambari API</shortDesc>
+        <description>The Ambari API facilitates the management and monitoring of the resources of an Apache Hadoop cluster.</description>
+        <samples>
+            <sample>
+                <description>Fetch all Ambari-managed clusters</description>
+                <method>GET</method>
+                <path>v1/clusters</path>
+            </sample>
+            <sample>
+                <description>Get the DATANODE component resource for the HDFS service of the cluster named 'c1'</description>
+                <method>GET</method>
+                <path>v1/clusters/c1/services/HDFS/components/DATANODE</path>
+            </sample>
+            <sample>
+                <description>Create the HDFS service.</description>
+                <method>POST</method>
+                <path>v1/clusters/c1/services/HDFS</path>
+            </sample>
+            <sample>
+                <description>Delete the cluster named 'c1'</description>
+                <method>DELETE</method>
+                <path>v1/clusters/c1</path>
+            </sample>
+            <sample>
+                <description>See the Apache Ambari's REST API documentation here</description>
+                <value>https://github.com/apache/ambari/blob/trunk/ambari-server/docs/api/v1/index.md</value>
+            </sample>
+        </samples>
+    </metadata>
+    <policies>
+        <policy role="webappsec"/>
+        <policy role="authentication" name="Anonymous"/>
+        <policy role="rewrite"/>
+        <policy role="authorization"/>
+    </policies>
+    <routes>
+        <route path="/ambari/api/v1/**">
+            <rewrite apply="AMBARI/ambari/api/outbound" to="response.body"/>
+            <rewrite apply="AMBARI/ambari/api/inbound" to="request.body"/>
+        </route>
+        <route path="/ambari/api/v1/persist/*?*">
+            <rewrite apply="AMBARI/ambari/api/inbound" to="request.body"/>
+        </route>
+    </routes>
+    <dispatch classname="org.apache.knox.gateway.dispatch.PassAllHeadersNoEncodingDispatch"/>
+</service>
diff --git a/gateway-service-definitions/src/main/resources/services/ambariui/3.0.0/rewrite.xml b/gateway-service-definitions/src/main/resources/services/ambariui/3.0.0/rewrite.xml
new file mode 100644
index 000000000..0ddc34a5e
--- /dev/null
+++ b/gateway-service-definitions/src/main/resources/services/ambariui/3.0.0/rewrite.xml
@@ -0,0 +1,158 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<rules>
+    <rule dir="IN" name="AMBARIUI/ambari/inbound/root" pattern="*://*:*/**/ambari/">
+        <rewrite template="{$serviceUrl[AMBARIUI]}/"/>
+    </rule>
+    <rule dir="IN" name="AMBARIUI/ambari/inbound/path" pattern="*://*:*/**/ambari/{**}">
+        <rewrite template="{$serviceUrl[AMBARIUI]}/{**}"/>
+    </rule>
+    <rule dir="IN" name="AMBARIUI/ambari/inbound/query" pattern="*://*:*/**/ambari/{**}?{**}">
+        <rewrite template="{$serviceUrl[AMBARIUI]}/{**}?{**}"/>
+    </rule>
+
+    <rule dir="OUT" name="AMBARIUI/ambari/outbound/sitepath">
+        <rewrite template="/gateway/{$frontend[topology]}/ambari"/>
+    </rule>
+
+    <rule dir="OUT" name="AMBARIUI/ambari/outbound/extrapath">
+        <rewrite template="/gateway/{$frontend[topology]}/ambari/api/v1"/>
+    </rule>
+
+    <rule dir="OUT" name="AMBARIUI/ambari/outbound/img">
+        <rewrite template="/gateway/{$frontend[topology]}/ambari/img/"/>
+    </rule>
+
+    <rule dir="OUT" name="AMBARIUI/ambari/outbound/ambarilogo">
+        <rewrite template="/gateway/{$frontend[topology]}/ambari/img/ambari-logo.png"/>
+    </rule>
+
+    <rule dir="OUT" name="AMBARIUI/ambari/outbound/logohref">
+        <rewrite template="#/main/dashboard"/>
+    </rule>
+
+    <rule dir="OUT" name="AMBARIUI/ambari/outbound/vendorcss">
+        <rewrite template="/gateway/{$frontend[topology]}/ambari/stylesheets/vendor.css"/>
+    </rule>
+    <rule dir="OUT" name="AMBARIUI/ambari/outbound/appcss">
+        <rewrite template="/gateway/{$frontend[topology]}/ambari/stylesheets/app.css"/>
+    </rule>
+    <rule dir="OUT" name="AMBARIUI/ambari/outbound/vendorjs">
+        <rewrite template="/gateway/{$frontend[topology]}/ambari/javascripts/vendor.js"/>
+    </rule>
+    <rule dir="OUT" name="AMBARIUI/ambari/outbound/appjs">
+        <rewrite template="/gateway/{$frontend[topology]}/ambari/javascripts/app.js"/>
+    </rule>
+    <rule dir="OUT" name="AMBARIUI/ambari/outbound/favicon">
+        <rewrite template="/gateway/{$frontend[topology]}/ambari/img/logo.png"/>
+    </rule>
+     <rule dir="OUT" name="AMBARIUI/ambari/outbound/notice">
+        <rewrite template="/gateway/{$frontend[topology]}/ambari/licenses/NOTICE.txt"/>
+    </rule>
+
+    <!-- WS support -->
+    <rule dir="OUT" name="AMBARIUI/ambari/outbound/websocket">
+        <rewrite template="/gateway/{$frontend[topology]}/ambariws/api/stomp/v1"/>
+    </rule>
+
+    <filter name="AMBARIUI/ambari/outbound/proxyroot">
+        <content type="*/x-javascript">
+            <apply path="\{proxy_root\}" rule="AMBARIUI/ambari/outbound/sitepath"/>
+        </content>
+        <content type="application/javascript">
+            <apply path="\{proxy_root\}" rule="AMBARIUI/ambari/outbound/sitepath"/>
+        </content>
+        <content type="text/javascript">
+            <apply path="\{proxy_root\}" rule="AMBARIUI/ambari/outbound/sitepath"/>
+        </content>
+    </filter>
+
+    <!-- filter to rewrite api prefix defined in .js from root -->
+    <!-- e.g. /api/v1 -->
+    <filter name="AMBARIUI/ambari/outbound/apiendpoint">
+        <content type="*/x-javascript">
+            <apply path="/api/v1" rule="AMBARIUI/ambari/outbound/extrapath"/>
+        </content>
+        <content type="application/javascript">
+            <apply path="/api/v1" rule="AMBARIUI/ambari/outbound/extrapath"/>
+        </content>
+        <content type="text/javascript">
+            <apply path="/api/v1" rule="AMBARIUI/ambari/outbound/extrapath"/>
+        </content>
+    </filter>
+
+    <filter name="AMBARIUI/ambari/outbound/apiendpoint/html">
+        <content type="text/html">
+            <apply path="/api/v1" rule="AMBARIUI/ambari/outbound/extrapath"/>
+        </content>
+    </filter>
+
+    <filter name="AMBARIUI/ambari/outbound/apiendpoint/noroot">
+        <content type="*/x-javascript">
+            <apply path="api/v1" rule="AMBARIUI/ambari/outbound/extrapath"/>
+        </content>
+        <content type="application/javascript">
+            <apply path="api/v1" rule="AMBARIUI/ambari/outbound/extrapath"/>
+        </content>
+        <content type="text/javascript">
+            <apply path="api/v1" rule="AMBARIUI/ambari/outbound/extrapath"/>
+        </content>
+    </filter>
+
+    <filter name="AMBARIUI/ambari/outbound/links">
+        <content type="*/x-javascript">
+            <apply path="/api/v1" rule="AMBARIUI/ambari/outbound/extrapath"/>
+            <apply path="/img/" rule="AMBARIUI/ambari/outbound/img"/>
+            <apply path="/img/ambari-logo.png" rule="AMBARIUI/ambari/outbound/ambarilogo"/>
+            <apply path="\{proxy_root\}" rule="AMBARIUI/ambari/outbound/sitepath"/>
+            <apply path="/#/main/dashboard" rule="AMBARIUI/ambari/outbound/logohref"/>
+            <!-- WS support -->
+            <apply path="/api/stomp/v1" rule="AMBARIUI/ambari/outbound/websocket"/>
+        </content>
+        <content type="application/javascript">
+            <apply path="/api/v1" rule="AMBARIUI/ambari/outbound/extrapath"/>
+            <apply path="/img/" rule="AMBARIUI/ambari/outbound/img"/>
+            <apply path="/img/ambari-logo.png" rule="AMBARIUI/ambari/outbound/ambarilogo"/>
+            <apply path="\{proxy_root\}" rule="AMBARIUI/ambari/outbound/sitepath"/>
+            <apply path="/#/main/dashboard" rule="AMBARIUI/ambari/outbound/logohref"/>
+            <!-- WS support -->
+            <apply path="/api/stomp/v1" rule="AMBARIUI/ambari/outbound/websocket"/>
+        </content>
+        <content type="text/javascript">
+            <apply path="/api/v1" rule="AMBARIUI/ambari/outbound/extrapath"/>
+            <apply path="/img/" rule="AMBARIUI/ambari/outbound/img"/>
+            <apply path="/img/ambari-logo.png" rule="AMBARIUI/ambari/outbound/ambarilogo"/>
+            <apply path="\{proxy_root\}" rule="AMBARIUI/ambari/outbound/sitepath"/>
+            <apply path="/#/main/dashboard" rule="AMBARIUI/ambari/outbound/logohref"/>
+            <!-- WS support -->
+            <apply path="/api/stomp/v1" rule="AMBARIUI/ambari/outbound/websocket"/>
+        </content>
+        <content type="*/html">
+        </content>
+    </filter>
+    <filter name="AMBARIUI/ambari/outbound/mainpage">
+        <content type="*/html">
+            <apply path="stylesheets/vendor.css" rule="AMBARIUI/ambari/outbound/vendorcss" />
+            <apply path="stylesheets/app.css" rule="AMBARIUI/ambari/outbound/appcss" />
+            <apply path="javascripts/vendor.js" rule="AMBARIUI/ambari/outbound/vendorjs" />
+            <apply path="javascripts/app.js" rule="AMBARIUI/ambari/outbound/appjs" />
+            <apply path="/img/logo.png" rule="AMBARIUI/ambari/outbound/favicon"/>
+            <apply path="/img/ambari-logo.png" rule="AMBARIUI/ambari/outbound/ambarilogo"/>
+            <apply path="/licenses/NOTICE.txt" rule="AMBARIUI/ambari/outbound/notice"/>
+        </content>
+    </filter>
+</rules>
diff --git a/gateway-service-definitions/src/main/resources/services/ambariui/3.0.0/service.xml b/gateway-service-definitions/src/main/resources/services/ambariui/3.0.0/service.xml
new file mode 100644
index 000000000..e5709838d
--- /dev/null
+++ b/gateway-service-definitions/src/main/resources/services/ambariui/3.0.0/service.xml
@@ -0,0 +1,107 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<service role="AMBARIUI" name="ambariui" version="3.0.0">
+    <metadata>
+        <type>UI</type>
+        <context>/ambari/</context>
+        <shortDesc>Apache Ambari Web UI</shortDesc>
+        <description>The Apache Ambari project is aimed at making Hadoop management simpler by developing software for provisioning, managing, and monitoring Apache Hadoop clusters. 
+            Ambari provides an intuitive, easy-to-use Hadoop management web UI backed by its RESTful APIs.</description>
+    </metadata>
+    <policies>
+        <policy role="webappsec"/>
+        <policy role="authentication" name="Anonymous"/>
+        <policy role="rewrite"/>
+        <policy role="authorization"/>
+    </policies>
+    <routes>
+        <route path="/ambari">
+            <rewrite apply="AMBARIUI/ambari/inbound/root" to="request.url"/>
+            <rewrite apply="AMBARIUI/ambari/outbound/mainpage" to="response.body"/>
+        </route>
+        <route path="/ambari/**">
+            <rewrite apply="AMBARIUI/ambari/inbound/path" to="request.url"/>
+        </route>
+        <route path="/ambari/**?**">
+            <rewrite apply="AMBARIUI/ambari/inbound/query" to="request.url"/>
+        </route>
+        <route path="/ambari/**/app.js">
+            <rewrite apply="AMBARIUI/ambari/outbound/links" to="response.body"/>
+        </route>
+        <route path="/ambari/**/vendor.js">
+            <rewrite apply="AMBARIUI/ambari/outbound/links" to="response.body"/>
+        </route>
+
+        <!-- Admin View route -->
+        <route path="/ambari/views/ADMIN_VIEW/**/INSTANCE/**">
+            <rewrite apply="AMBARIUI/ambari/outbound/proxyroot" to="response.body"/>
+        </route>
+
+        <!-- Files view -->
+        <route path="/ambari/views/FILES/**/assets/files-view.js">
+            <rewrite apply="AMBARIUI/ambari/outbound/apiendpoint/noroot" to="response.body"/>
+        </route>
+
+        <!-- Capacity Scheduler view -->
+        <route path="/ambari/views/CAPACITY-SCHEDULER/**/javascripts/app.js">
+            <rewrite apply="AMBARIUI/ambari/outbound/apiendpoint/noroot" to="response.body"/>
+        </route>
+
+        <!-- Pig view  -->
+        <route path="/ambari/views/PIG/**/javascripts/app.js">
+            <rewrite apply="AMBARIUI/ambari/outbound/apiendpoint/noroot" to="response.body"/>
+        </route>
+
+        <!-- Hive view route -->
+        <route path="/ambari/views/HIVE/**/assets/hive.js">
+            <rewrite apply="AMBARIUI/ambari/outbound/apiendpoint" to="response.body"/>
+        </route>
+
+        <!-- Storm View -->
+        <route path="/ambari/views/Storm_Monitoring/**/scripts/models/*.js">
+            <rewrite apply="AMBARIUI/ambari/outbound/apiendpoint" to="response.body"/>
+        </route>
+
+        <route path="/ambari/views/ZEPPELIN/*/*/">
+            <rewrite apply="AMBARIUI/ambari/outbound/apiendpoint/html" to="response.body"/>
+        </route>
+
+        <!-- Tez View -->
+        <route path="/ambari/views/TEZ/*/*/ambari-scripts/init-view.js">
+          <rewrite apply="AMBARIUI/ambari/outbound/apiendpoint" to="response.body"/>
+        </route>
+
+        <!-- Hive 2.0 view -->
+        <route path="/ambari/views/HIVE/**/assets/ui.js">
+            <rewrite apply="AMBARIUI/ambari/outbound/apiendpoint/noroot" to="response.body"/>
+        </route>
+
+        <!-- Wfmanager view -->
+        <route path="/ambari/views/WORKFLOW_MANAGER/*/*/">
+            <rewrite apply="AMBARIUI/ambari/outbound/apiendpoint/html" to="response.body"/>
+        </route>
+
+        <!-- SmartSense view -->
+        <route path="/ambari/views/SMARTSENSE/**/assets/hstapp-*.js">
+            <rewrite apply="AMBARIUI/ambari/outbound/apiendpoint" to="response.body"/>
+        </route>
+
+        <!-- No need to rewrite Slider View -->
+    </routes>
+    <dispatch classname="org.apache.knox.gateway.dispatch.PassAllHeadersNoEncodingDispatch"/>
+</service>
+
diff --git a/gateway-service-definitions/src/main/resources/services/ambariws/3.0.0/rewrite.xml b/gateway-service-definitions/src/main/resources/services/ambariws/3.0.0/rewrite.xml
new file mode 100644
index 000000000..6438f1709
--- /dev/null
+++ b/gateway-service-definitions/src/main/resources/services/ambariws/3.0.0/rewrite.xml
@@ -0,0 +1,25 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<rules>
+    <rule dir="IN" name="AMBARIWS/ambariws/inbound/ws">
+        <rewrite template="{$serviceUrl[AMBARIWS]}/"/>
+    </rule>
+    <rule dir="IN" name="AMBARIWS/ambariws/inbound/js" pattern="*://*:*/**/ambariws/{**}?{**}">
+        <rewrite template="{$serviceUrl[AMBARIUI]}/{**}?{**}"/>
+    </rule>
+</rules>
+
diff --git a/gateway-service-definitions/src/main/resources/services/ambariws/3.0.0/service.xml b/gateway-service-definitions/src/main/resources/services/ambariws/3.0.0/service.xml
new file mode 100644
index 000000000..3e2810614
--- /dev/null
+++ b/gateway-service-definitions/src/main/resources/services/ambariws/3.0.0/service.xml
@@ -0,0 +1,33 @@
+<!--
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+-->
+<service role="AMBARIWS" name="ambariws" version="3.0.0">
+    <policies>
+        <policy role="webappsec"/>
+        <policy role="authentication" name="Anonymous"/>
+        <policy role="rewrite"/>
+        <policy role="authorization"/>
+    </policies>
+    <routes>
+        <route path="/ambariws/**?**">
+            <rewrite apply="AMBARIWS/ambariws/inbound/js" to="request.url"/>
+        </route>
+        <route path="/ambariws/**/websocket">
+            <rewrite apply="AMBARIWS/ambariws/inbound/ws" to="request.url"/>
+        </route>
+    </routes>
+</service>
+