瀏覽代碼

HPCC-18037 Fix 3 bugs related to ESP AuthDomain setting

1. Generated esp.xml has an empty AuthDomains section when there is a
AuthDomain setting in environment.xml; 2. generated esp.xml should not
have AuthDomains section if no AuthDomain setting in environment.xml;
3. the name of AuthDomain should be read from the '@domainName' from
AuthDomain setting.

Signed-off-by: wangkx <kevin.wang@lexisnexis.com>
wangkx 7 年之前
父節點
當前提交
1c76c7db9a
共有 2 個文件被更改,包括 18 次插入11 次删除
  1. 1 1
      esp/platform/espcfg.cpp
  2. 17 10
      initfiles/componentfiles/configxml/esp.xsl

+ 1 - 1
esp/platform/espcfg.cpp

@@ -127,7 +127,7 @@ void CEspConfig::ensureSDSSessionDomains()
             continue;
 
         hasSessionAuth = true;
-        const char* authDomainName = authDomain.queryProp("@name");
+        const char* authDomainName = authDomain.queryProp("@domainName");
         if (isEmptyString(authDomainName) || strieq(authDomainName, "default"))
         {
             if (hasDefaultSessionDomain)

+ 17 - 10
initfiles/componentfiles/configxml/esp.xsl

@@ -90,20 +90,22 @@
               <xsl:value-of disable-output-escaping="yes" select="$indent" />
               <xsl:value-of disable-output-escaping="yes" select="$indent" />
               <xsl:value-of disable-output-escaping="yes" select="$indent" />
-              <AuthDomains>
-                <xsl:for-each select="AuthDomain">
+              <xsl:if test="AuthDomains/AuthDomain[1]">
+                <AuthDomains>
+                  <xsl:for-each select="AuthDomains/AuthDomain">
+                    <xsl:value-of disable-output-escaping="yes" select="$break" />
+                    <xsl:value-of disable-output-escaping="yes" select="$indent" />
+                    <xsl:value-of disable-output-escaping="yes" select="$indent" />
+                    <xsl:value-of disable-output-escaping="yes" select="$indent" />
+                    <xsl:value-of disable-output-escaping="yes" select="$indent" />
+                    <xsl:copy-of select="."/>
+                  </xsl:for-each>
                   <xsl:value-of disable-output-escaping="yes" select="$break" />
                   <xsl:value-of disable-output-escaping="yes" select="$indent" />
                   <xsl:value-of disable-output-escaping="yes" select="$indent" />
                   <xsl:value-of disable-output-escaping="yes" select="$indent" />
-                  <xsl:value-of disable-output-escaping="yes" select="$indent" />
-                  <xsl:copy-of select="."/>
-                </xsl:for-each>
-                <xsl:value-of disable-output-escaping="yes" select="$break" />
-                <xsl:value-of disable-output-escaping="yes" select="$indent" />
-                <xsl:value-of disable-output-escaping="yes" select="$indent" />
-                <xsl:value-of disable-output-escaping="yes" select="$indent" />
-              </AuthDomains>
+                </AuthDomains>
+              </xsl:if>
             </xsl:if>
 
             <xsl:for-each select="Authentication">
@@ -349,6 +351,11 @@
     <!--don't produce in output -->
     <xsl:template match="@buildSet|@maxRequestEntityLength"/>
 
+    <!--don't produce in output -->
+    <xsl:template match="EspProcess/AuthDomains"/>
+
+    <!--don't produce in output -->
+    <xsl:template match="EspProcess/EspControlBinding"/>
 
     <xsl:template match="/|@*|node()">
         <!--matches any attribute or child of any types-->