[mapguide-commits] r10036 - in trunk/MgDev: Common/MapGuideCommon/System Web/src Web/src/HttpHandler Web/src/WebSupport cmake/configs

svn_mapguide at osgeo.org svn_mapguide at osgeo.org
Fri Mar 24 09:09:05 PDT 2023


Author: jng
Date: 2023-03-24 09:09:04 -0700 (Fri, 24 Mar 2023)
New Revision: 10036

Modified:
   trunk/MgDev/Common/MapGuideCommon/System/ConfigProperties.cpp
   trunk/MgDev/Common/MapGuideCommon/System/ConfigProperties.h
   trunk/MgDev/Web/src/HttpHandler/HttpGetResourceContent.cpp
   trunk/MgDev/Web/src/HttpHandler/HttpGetResourceData.cpp
   trunk/MgDev/Web/src/HttpHandler/HttpGetResourceHeader.cpp
   trunk/MgDev/Web/src/HttpHandler/HttpHandler.h
   trunk/MgDev/Web/src/HttpHandler/HttpHandler.vcxproj
   trunk/MgDev/Web/src/HttpHandler/HttpHandler.vcxproj.filters
   trunk/MgDev/Web/src/HttpHandler/HttpHandlerBuild.cpp
   trunk/MgDev/Web/src/HttpHandler/HttpRequestResponseHandler.cpp
   trunk/MgDev/Web/src/HttpHandler/HttpRequestResponseHandler.h
   trunk/MgDev/Web/src/HttpHandler/ReaderByteSourceImpl.cpp
   trunk/MgDev/Web/src/WebSupport/CMakeLists.txt
   trunk/MgDev/Web/src/WebSupport/InitializeWebTier.cpp
   trunk/MgDev/Web/src/WebSupport/WebSupport.vcxproj
   trunk/MgDev/Web/src/webconfig.ini
   trunk/MgDev/cmake/configs/webconfig.ini.in
Log:
Add support for 3 new optional properties in webconfig.ini

 - AnonymousDenyGetResourceContent
 - AnonymousDenyGetResourceData
 - AnonymousDenyGetResourceHeader

These properties accept a comma-delimited list of resource ids or resource id prefixes, which if set will deny access for the respective GETRESOURCECONTENT, GETRESOURCEDATA or GETRESOURCEHEADER operation to Anonymous users for any resource id that starts with any of the tokens defined. This way, it is flexible enough to deny access to certain resources, or entire parent folders of resources.

Fixes #2864

Modified: trunk/MgDev/Common/MapGuideCommon/System/ConfigProperties.cpp
===================================================================
--- trunk/MgDev/Common/MapGuideCommon/System/ConfigProperties.cpp	2023-03-20 15:32:40 UTC (rev 10035)
+++ trunk/MgDev/Common/MapGuideCommon/System/ConfigProperties.cpp	2023-03-24 16:09:04 UTC (rev 10036)
@@ -557,6 +557,12 @@
 const INT32  MgConfigProperties::DefaultAgentGlobalGetWfsFeaturesLimit                      = 0;
 const STRING MgConfigProperties::AgentGlobalGetWmsFeatureInfoLimit                          = L"GlobalGetWmsFeatureInfoLimit";
 const INT32  MgConfigProperties::DefaultAgentGlobalGetWmsFeatureInfoLimit                   = 0;
+const STRING MgConfigProperties::AgentAnonymousDenyGetResourceContent                       = L"AnonymousDenyGetResourceContent";
+const STRING MgConfigProperties::DefaultAgentAnonymousDenyGetResourceContent                = L"";
+const STRING MgConfigProperties::AgentAnonymousDenyGetResourceData                          = L"AnonymousDenyGetResourceData";
+const STRING MgConfigProperties::DefaultAgentAnonymousDenyGetResourceData                   = L"";
+const STRING MgConfigProperties::AgentAnonymousDenyGetResourceHeader                        = L"AnonymousDenyGetResourceHeader";
+const STRING MgConfigProperties::DefaultAgentAnonymousDenyGetResourceHeader                 = L"";
 
 // ******************************************************************
 // OGC Properties

Modified: trunk/MgDev/Common/MapGuideCommon/System/ConfigProperties.h
===================================================================
--- trunk/MgDev/Common/MapGuideCommon/System/ConfigProperties.h	2023-03-20 15:32:40 UTC (rev 10035)
+++ trunk/MgDev/Common/MapGuideCommon/System/ConfigProperties.h	2023-03-24 16:09:04 UTC (rev 10036)
@@ -969,7 +969,18 @@
     static const STRING AgentGlobalMaxMapFeatureQueryLimit;             /// value("GlobalMaxMapFeatureQueryLimit")
     static const INT32  DefaultAgentGlobalMaxMapFeatureQueryLimit;      /// value(0)
     
+    /// A series of resource ids and/or prefixes to deny GETRESOURCE calls for Anonymous users
+    static const STRING AgentAnonymousDenyGetResourceContent;           /// value("AnonymousDenyGetResourceContent")
+    static const STRING DefaultAgentAnonymousDenyGetResourceContent;    /// value("")
 
+    /// A series of resource ids and/or prefixes to deny GETRESOURCEDATA calls for Anonymous users
+    static const STRING AgentAnonymousDenyGetResourceData;              /// value("AnonymousDenyGetResourceData")
+    static const STRING DefaultAgentAnonymousDenyGetResourceData;       /// value("")
+
+    /// A series of resource ids and/or prefixes to deny GETRESOURCEHEADER calls for Anonymous users
+    static const STRING AgentAnonymousDenyGetResourceHeader;            /// value("AnonymousDenyGetResourceHeader")
+    static const STRING DefaultAgentAnonymousDenyGetResourceHeader;     /// value("")
+
     /// OGC PROPERTIES SECTION -------------------------------------------------------------------------------------------
 
     /// Ogc properties

Modified: trunk/MgDev/Web/src/HttpHandler/HttpGetResourceContent.cpp
===================================================================
--- trunk/MgDev/Web/src/HttpHandler/HttpGetResourceContent.cpp	2023-03-20 15:32:40 UTC (rev 10035)
+++ trunk/MgDev/Web/src/HttpHandler/HttpGetResourceContent.cpp	2023-03-24 16:09:04 UTC (rev 10036)
@@ -65,6 +65,19 @@
     // Create MgResourceIdentifier.
     MgResourceIdentifier resource(m_resourceId);
 
+    // Check if anonymous and that this operation should be denied
+    auto userId = GetCurrentMgUser();
+    if (userId == MgUser::Anonymous)
+    {
+        auto anonCheck = MgHttpAnonymousCheck::GetInstance();
+        if (anonCheck->ShouldDenyGetResourceContent(&resource))
+        {
+            throw new MgException(MgExceptionCodes::MgPermissionDeniedException,
+                L"MgHttpGetResourceContent.Execute",
+                __LINE__, __WFILE__, NULL, L"", NULL);
+        }
+    }
+
     // Run API command.
     Ptr<MgByteReader> byteReader = service->GetResourceContent(&resource);
 

Modified: trunk/MgDev/Web/src/HttpHandler/HttpGetResourceData.cpp
===================================================================
--- trunk/MgDev/Web/src/HttpHandler/HttpGetResourceData.cpp	2023-03-20 15:32:40 UTC (rev 10035)
+++ trunk/MgDev/Web/src/HttpHandler/HttpGetResourceData.cpp	2023-03-24 16:09:04 UTC (rev 10036)
@@ -67,6 +67,19 @@
     // Create MgResourceIdentifier
     MgResourceIdentifier mgrIdentifier(m_resourceId);
 
+    // Check if anonymous and that this operation should be denied
+    auto userId = GetCurrentMgUser();
+    if (userId == MgUser::Anonymous)
+    {
+        auto anonCheck = MgHttpAnonymousCheck::GetInstance();
+        if (anonCheck->ShouldDenyGetResourceData(&mgrIdentifier))
+        {
+            throw new MgException(MgExceptionCodes::MgPermissionDeniedException,
+                L"MgHttpGetResourceContent.Execute",
+                __LINE__, __WFILE__, NULL, L"", NULL);
+        }
+    }
+
     // Run API command
     Ptr<MgByteReader> byteReader = mgprService->GetResourceData(&mgrIdentifier, m_dataName);
 

Modified: trunk/MgDev/Web/src/HttpHandler/HttpGetResourceHeader.cpp
===================================================================
--- trunk/MgDev/Web/src/HttpHandler/HttpGetResourceHeader.cpp	2023-03-20 15:32:40 UTC (rev 10035)
+++ trunk/MgDev/Web/src/HttpHandler/HttpGetResourceHeader.cpp	2023-03-24 16:09:04 UTC (rev 10036)
@@ -65,6 +65,19 @@
     // Create MgResourceIdentifier
     MgResourceIdentifier mgrIdentifier(m_resourceId);
 
+    // Check if anonymous and that this operation should be denied
+    auto userId = GetCurrentMgUser();
+    if (userId == MgUser::Anonymous)
+    {
+        auto anonCheck = MgHttpAnonymousCheck::GetInstance();
+        if (anonCheck->ShouldDenyGetResourceHeader(&mgrIdentifier))
+        {
+            throw new MgException(MgExceptionCodes::MgPermissionDeniedException,
+                L"MgHttpGetResourceContent.Execute",
+                __LINE__, __WFILE__, NULL, L"", NULL);
+        }
+    }
+
     // Run API command
     Ptr<MgByteReader> byteReader = mgprService->GetResourceHeader(&mgrIdentifier);
 

Modified: trunk/MgDev/Web/src/HttpHandler/HttpHandler.h
===================================================================
--- trunk/MgDev/Web/src/HttpHandler/HttpHandler.h	2023-03-20 15:32:40 UTC (rev 10035)
+++ trunk/MgDev/Web/src/HttpHandler/HttpHandler.h	2023-03-24 16:09:04 UTC (rev 10036)
@@ -44,6 +44,7 @@
 #include "HttpRequestResponseHandler.h"
 #include "HttpPrimitiveValue.h"
 #include "HttpUtil.h"
+#include "HttpAnonymousCheck.h"
 
 // dynamic creation macros
 #define HTTP_DECLARE_CREATE_OBJECT() \

Modified: trunk/MgDev/Web/src/HttpHandler/HttpHandler.vcxproj
===================================================================
--- trunk/MgDev/Web/src/HttpHandler/HttpHandler.vcxproj	2023-03-20 15:32:40 UTC (rev 10035)
+++ trunk/MgDev/Web/src/HttpHandler/HttpHandler.vcxproj	2023-03-24 16:09:04 UTC (rev 10036)
@@ -198,6 +198,12 @@
     </Link>
   </ItemDefinitionGroup>
   <ItemGroup>
+    <ClCompile Include="HttpAnonymousCheck.cpp">
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
+      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
+    </ClCompile>
     <ClCompile Include="HttpApplyResourcePackage.cpp">
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
       <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
@@ -1009,6 +1015,7 @@
     </ClCompile>
   </ItemGroup>
   <ItemGroup>
+    <ClInclude Include="HttpAnonymousCheck.h" />
     <ClInclude Include="HttpApplyResourcePackage.h" />
     <ClInclude Include="HttpChangeResourceOwner.h" />
     <ClInclude Include="HttpCsTransformCoordinates.h" />

Modified: trunk/MgDev/Web/src/HttpHandler/HttpHandler.vcxproj.filters
===================================================================
--- trunk/MgDev/Web/src/HttpHandler/HttpHandler.vcxproj.filters	2023-03-20 15:32:40 UTC (rev 10035)
+++ trunk/MgDev/Web/src/HttpHandler/HttpHandler.vcxproj.filters	2023-03-24 16:09:04 UTC (rev 10036)
@@ -422,6 +422,7 @@
     <ClCompile Include="HttpCsTransformCoordinates.cpp">
       <Filter>Coordinate System</Filter>
     </ClCompile>
+    <ClCompile Include="HttpAnonymousCheck.cpp" />
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="HttpApplyResourcePackage.h">
@@ -826,6 +827,7 @@
     <ClInclude Include="HttpCsTransformCoordinates.h">
       <Filter>Coordinate System</Filter>
     </ClInclude>
+    <ClInclude Include="HttpAnonymousCheck.h" />
   </ItemGroup>
   <ItemGroup>
     <ResourceCompile Include="HttpHandler.rc" />

Modified: trunk/MgDev/Web/src/HttpHandler/HttpHandlerBuild.cpp
===================================================================
--- trunk/MgDev/Web/src/HttpHandler/HttpHandlerBuild.cpp	2023-03-20 15:32:40 UTC (rev 10035)
+++ trunk/MgDev/Web/src/HttpHandler/HttpHandlerBuild.cpp	2023-03-24 16:09:04 UTC (rev 10036)
@@ -20,6 +20,7 @@
 // them.  The resource strings must then be initialized first
 #include "HttpResourceStrings.cpp"
 
+#include "HttpAnonymousCheck.cpp"
 #include "HttpApplyResourcePackage.cpp"
 #include "HttpChangeResourceOwner.cpp"
 #include "HttpClearTileCache.cpp"

Modified: trunk/MgDev/Web/src/HttpHandler/HttpRequestResponseHandler.cpp
===================================================================
--- trunk/MgDev/Web/src/HttpHandler/HttpRequestResponseHandler.cpp	2023-03-20 15:32:40 UTC (rev 10035)
+++ trunk/MgDev/Web/src/HttpHandler/HttpRequestResponseHandler.cpp	2023-03-24 16:09:04 UTC (rev 10036)
@@ -291,3 +291,18 @@
         convert.ToJson(byteReader, m_bCleanJson);
     }
 }
+
+STRING MgHttpRequestResponseHandler::GetCurrentMgUser()
+{
+    auto userId = m_userInfo->GetUserName();
+    if (userId.empty())
+    {
+        Ptr<MgSite> site = m_siteConn->GetSite();
+        auto sessionId = site->GetCurrentSession();
+        if (!sessionId.empty())
+        {
+            userId = site->GetUserForSession();
+        }
+    }
+    return userId;
+}

Modified: trunk/MgDev/Web/src/HttpHandler/HttpRequestResponseHandler.h
===================================================================
--- trunk/MgDev/Web/src/HttpHandler/HttpRequestResponseHandler.h	2023-03-20 15:32:40 UTC (rev 10035)
+++ trunk/MgDev/Web/src/HttpHandler/HttpRequestResponseHandler.h	2023-03-24 16:09:04 UTC (rev 10036)
@@ -122,6 +122,12 @@
     /// <returns>Returns nothing</returns>
     virtual void ProcessFormatConversion(Ptr<MgByteReader> &byteReader);
 
+    /// <summary>
+    /// Gets the current user
+    /// </summary>
+    /// <returns></returns>
+    virtual STRING GetCurrentMgUser();
+
     Ptr<MgHttpRequest> m_hRequest;
     STRING m_version;
     STRING m_responseFormat;

Modified: trunk/MgDev/Web/src/HttpHandler/ReaderByteSourceImpl.cpp
===================================================================
--- trunk/MgDev/Web/src/HttpHandler/ReaderByteSourceImpl.cpp	2023-03-20 15:32:40 UTC (rev 10035)
+++ trunk/MgDev/Web/src/HttpHandler/ReaderByteSourceImpl.cpp	2023-03-24 16:09:04 UTC (rev 10036)
@@ -297,7 +297,7 @@
 
     //Clear out however many remaining content up to the requested
     //length
-    maxIndex = m_buf.length() - 1;
+    maxIndex = (INT32)m_buf.length() - 1;
     if (m_bufOffset < maxIndex)
     {
         INT32 remaining = length - ret;

Modified: trunk/MgDev/Web/src/WebSupport/CMakeLists.txt
===================================================================
--- trunk/MgDev/Web/src/WebSupport/CMakeLists.txt	2023-03-20 15:32:40 UTC (rev 10035)
+++ trunk/MgDev/Web/src/WebSupport/CMakeLists.txt	2023-03-24 16:09:04 UTC (rev 10036)
@@ -3,6 +3,7 @@
     ${MG_COMMON_DIR}/Geometry
     ${MG_COMMON_DIR}/PlatformBase
     ${MG_COMMON_DIR}/MapGuideCommon
+    ${CMAKE_CURRENT_SOURCE_DIR}/../HttpHandler
     ${ACE_INCLUDE_DIR}
 )
 
@@ -18,6 +19,7 @@
     MgFoundation${MG_VERSION_SUFFIX}
     MgPlatformBase${MG_VERSION_SUFFIX}
     MgMapGuideCommon${MG_VERSION_SUFFIX}
+    MgHttpHandler${MG_VERSION_SUFFIX}
 )
 
 # Set RPATH to avoid needing to use LD_LIBRARY_PATH in various configs

Modified: trunk/MgDev/Web/src/WebSupport/InitializeWebTier.cpp
===================================================================
--- trunk/MgDev/Web/src/WebSupport/InitializeWebTier.cpp	2023-03-20 15:32:40 UTC (rev 10035)
+++ trunk/MgDev/Web/src/WebSupport/InitializeWebTier.cpp	2023-03-24 16:09:04 UTC (rev 10036)
@@ -16,6 +16,7 @@
 //
 
 #include "MapGuideCommon.h"
+#include "HttpHandler.h"
 #include "Services/ServerConnectionPool.h"
 
 
@@ -45,6 +46,10 @@
 
     config->LoadConfiguration(configFile);
 
+    // Init the Anonymous user check
+    MgHttpAnonymousCheck* anonCheck = MgHttpAnonymousCheck::GetInstance();
+    anonCheck->Init(config);
+
     // Initialize resource path as well
     MgResources* resources = MgResources::GetInstance();
 

Modified: trunk/MgDev/Web/src/WebSupport/WebSupport.vcxproj
===================================================================
--- trunk/MgDev/Web/src/WebSupport/WebSupport.vcxproj	2023-03-20 15:32:40 UTC (rev 10035)
+++ trunk/MgDev/Web/src/WebSupport/WebSupport.vcxproj	2023-03-24 16:09:04 UTC (rev 10036)
@@ -94,7 +94,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>..\..\..\Common\MdfModel;..\..\..\Common\Foundation;..\..\..\Common\Geometry;..\..\..\Common\PlatformBase;..\..\..\Common\MapGuideCommon;..\..\..\Oem\ACE\ACE_wrappers;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\..\..\Common\MdfModel;..\..\..\Common\Foundation;..\..\..\Common\Geometry;..\..\..\Common\PlatformBase;..\..\..\Common\MapGuideCommon;..\HttpHandler;..\..\..\Oem\ACE\ACE_wrappers;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;WEBSUPPORT_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <ExceptionHandling>Async</ExceptionHandling>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -120,7 +120,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>..\..\..\Common\MdfModel;..\..\..\Common\Foundation;..\..\..\Common\Geometry;..\..\..\Common\PlatformBase;..\..\..\Common\MapGuideCommon;..\..\..\Oem\ACE\ACE_wrappers;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\..\..\Common\MdfModel;..\..\..\Common\Foundation;..\..\..\Common\Geometry;..\..\..\Common\PlatformBase;..\..\..\Common\MapGuideCommon;..\HttpHandler;..\..\..\Oem\ACE\ACE_wrappers;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;WEBSUPPORT_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <ExceptionHandling>Async</ExceptionHandling>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -147,7 +147,7 @@
     <ClCompile>
       <Optimization>MaxSpeed</Optimization>
       <IntrinsicFunctions>true</IntrinsicFunctions>
-      <AdditionalIncludeDirectories>..\..\..\Common\MdfModel;..\..\..\Common\Foundation;..\..\..\Common\Geometry;..\..\..\Common\PlatformBase;..\..\..\Common\MapGuideCommon;..\..\..\Oem\ACE\ACE_wrappers;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\..\..\Common\MdfModel;..\..\..\Common\Foundation;..\..\..\Common\Geometry;..\..\..\Common\PlatformBase;..\..\..\Common\MapGuideCommon;..\HttpHandler;..\..\..\Oem\ACE\ACE_wrappers;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;WEBSUPPORT_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <FunctionLevelLinking>true</FunctionLevelLinking>
@@ -175,7 +175,7 @@
     <ClCompile>
       <Optimization>MaxSpeed</Optimization>
       <IntrinsicFunctions>true</IntrinsicFunctions>
-      <AdditionalIncludeDirectories>..\..\..\Common\MdfModel;..\..\..\Common\Foundation;..\..\..\Common\Geometry;..\..\..\Common\PlatformBase;..\..\..\Common\MapGuideCommon;..\..\..\Oem\ACE\ACE_wrappers;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\..\..\Common\MdfModel;..\..\..\Common\Foundation;..\..\..\Common\Geometry;..\..\..\Common\PlatformBase;..\..\..\Common\MapGuideCommon;..\HttpHandler;..\..\..\Oem\ACE\ACE_wrappers;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;WEBSUPPORT_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <FunctionLevelLinking>true</FunctionLevelLinking>
@@ -219,6 +219,9 @@
       <Project>{f7334b1b-0efa-47e3-8e66-df158e61b7e4}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
+    <ProjectReference Include="..\HttpHandler\HttpHandler.vcxproj">
+      <Project>{78619d0e-d3f9-4ddf-b90e-f99cb03dfc44}</Project>
+    </ProjectReference>
   </ItemGroup>
   <ItemGroup>
     <ResourceCompile Include="WebSupport.rc" />

Modified: trunk/MgDev/Web/src/webconfig.ini
===================================================================
--- trunk/MgDev/Web/src/webconfig.ini	2023-03-20 15:32:40 UTC (rev 10035)
+++ trunk/MgDev/Web/src/webconfig.ini	2023-03-24 16:09:04 UTC (rev 10036)
@@ -158,6 +158,18 @@
 # GlobalMaxMapFeatureQueryLimit    If set, and greater than 0, defines a global
 #                                  feature query limit for any operation that
 #                                  returns feature data for a map query
+# AnonymousDenyGetResourceContent  An optional comma-delimited list of resource
+#                                  ids or resource id prefixes that should be
+#                                  denied access to GETRESOURCECONTENT calls for
+#                                  Anonymous users
+# AnonymousDenyGetResourceData     An optional comma-delimited list of resource
+#                                  ids or resource id prefixes that should be
+#                                  denied access to GETRESOURCEDATA calls for
+#                                  Anonymous users
+# AnonymousDenyGetResourceHeader   An optional comma-delimited list of resource
+#                                  ids or resource id prefixes that should be
+#                                  denied access to GETRESOURCEHEADER calls for
+#                                  Anonymous users
 # *****************************************************************************
 DebugPause                         = 0
 DisableAuthoring                   = 0
@@ -169,6 +181,9 @@
 RequestLogFilename                 = Request.log
 GlobalMaxFeatureQueryLimit         = 
 GlobalMaxMapFeatureQueryLimit      =
+AnonymousDenyGetResourceContent    =
+AnonymousDenyGetResourceData       =
+AnonymousDenyGetResourceHeader     =
 
 [OgcProperties]
 # *****************************************************************************

Modified: trunk/MgDev/cmake/configs/webconfig.ini.in
===================================================================
--- trunk/MgDev/cmake/configs/webconfig.ini.in	2023-03-20 15:32:40 UTC (rev 10035)
+++ trunk/MgDev/cmake/configs/webconfig.ini.in	2023-03-24 16:09:04 UTC (rev 10036)
@@ -41,6 +41,7 @@
 #
 # LogsPath                         Path where log files are stored 
 # MentorDictionaryPath             The path where the CS-Map Coordinate System Dictionaries are installed
+# MentorUserDictionaryPath         The path where user defined CS-Map Coordinate System Dictionaries are stored
 # ResourcesPath                    Path where the localization resource files are stored
 # TcpIpMtu                         The TCP/IP maximum transmission unit
 #                                       0 < Value <= 65535
@@ -59,6 +60,7 @@
 DefaultMessageLocale               = en
 LogsPath                           = @MG_WWWROOT_ABS@/Logs/
 MentorDictionaryPath               = @MG_INSTALL_COORDSYS_PREFIX_ABS@
+MentorUserDictionaryPath           =
 ResourcesPath                      = @MG_WWWROOT_ABS@/Resources/
 TcpIpMtu                           = 1460
 TempPath                           = @MG_INSTALL_WEB_PREFIX_ABS@/Temp/
@@ -150,6 +152,24 @@
 # ErrorLogFilename                 Name of the log file  
 # RequestLogEnabled                0 = log disabled, 1 = log enabled  
 # RequestLogFilename               Name of the log file  
+# GlobalMaxFeatureQueryLimit       If set, and greater than 0, defines a global
+#                                  feature query limit for any operation that
+#                                  returns feature data
+# GlobalMaxMapFeatureQueryLimit    If set, and greater than 0, defines a global
+#                                  feature query limit for any operation that
+#                                  returns feature data for a map query
+# AnonymousDenyGetResourceContent  An optional comma-delimited list of resource
+#                                  ids or resource id prefixes that should be
+#                                  denied access to GETRESOURCECONTENT calls for
+#                                  Anonymous users
+# AnonymousDenyGetResourceData     An optional comma-delimited list of resource
+#                                  ids or resource id prefixes that should be
+#                                  denied access to GETRESOURCEDATA calls for
+#                                  Anonymous users
+# AnonymousDenyGetResourceHeader   An optional comma-delimited list of resource
+#                                  ids or resource id prefixes that should be
+#                                  denied access to GETRESOURCEHEADER calls for
+#                                  Anonymous users
 # *****************************************************************************
 DebugPause                         = 0
 DisableAuthoring                   = 0
@@ -159,6 +179,11 @@
 ErrorLogFilename                   = Error.log
 RequestLogEnabled                  = 0
 RequestLogFilename                 = Request.log
+GlobalMaxFeatureQueryLimit         = 
+GlobalMaxMapFeatureQueryLimit      =
+AnonymousDenyGetResourceContent    =
+AnonymousDenyGetResourceData       =
+AnonymousDenyGetResourceHeader     =
 
 [OgcProperties]
 # *****************************************************************************
@@ -176,11 +201,19 @@
 # CITEWmsEnabled                   Enable OGC CITE Test for WMS 
 #                                  Consider unknown requests as OGC Wms HTTP requests
 #                                        0 = false and 1 = true
+# GlobalGetWfsFeaturesLimit        If set, and greater than 0, defines a global
+#                                  feature query limit for any GetWfsFeatures
+#                                  operation
+# GlobalGetWmsFeatureInfoLimit     If set, and greater than 0, defines a global
+#                                  feature query limit for any GetFeatureInfo
+#                                  operation
 # *****************************************************************************
 WfsPassword                        = wfs
 WmsPassword                        = wms
 CITEWfsEnabled                     = 0
 CITEWmsEnabled                     = 0
+GlobalGetWfsFeaturesLimit          =
+GlobalGetWmsFeatureInfoLimit       =
 
 [WebApplicationProperties]
 # *****************************************************************************



More information about the mapguide-commits mailing list