Selaa lähdekoodia

Merge pull request #11640 from wangkx/h20407

HPCC-20407 Report authorization failures to TxSummary in WsMachine

Reviewed-By: Russ Whitehead <william.whitehead@lexisnexis.com>
Reviewed-By: Richard Chapman <rchapman@hpccsystems.com>
Richard Chapman 6 vuotta sitten
vanhempi
commit
bddb92421b

+ 5 - 10
esp/services/ws_machine/ws_machineService.cpp

@@ -224,8 +224,7 @@ bool Cws_machineEx::onGetMachineInfo(IEspContext &context, IEspGetMachineInfoReq
 {
     try
     {
-        if (!context.validateFeatureAccess(FEATURE_URL, SecAccess_Read, false))
-            throw MakeStringException(ECLWATCH_MACHINE_INFO_ACCESS_DENIED, "Failed to Get Machine Information. Permission denied.");
+        context.ensureFeatureAccess(FEATURE_URL, SecAccess_Read, ECLWATCH_MACHINE_INFO_ACCESS_DENIED, "Failed to Get Machine Information. Permission denied.");
 
         StringArray& addresses = req.getAddresses();
         if (addresses.empty())
@@ -249,8 +248,7 @@ bool Cws_machineEx::onGetMachineInfoEx(IEspContext &context, IEspGetMachineInfoR
 {
     try
     {
-        if (!context.validateFeatureAccess(FEATURE_URL, SecAccess_Read, false))
-            throw MakeStringException(ECLWATCH_MACHINE_INFO_ACCESS_DENIED, "Failed to Get Machine Information. Permission denied.");
+        context.ensureFeatureAccess(FEATURE_URL, SecAccess_Read, ECLWATCH_MACHINE_INFO_ACCESS_DENIED, "Failed to Get Machine Information. Permission denied.");
 
         StringArray& addresses = req.getAddresses();
         if (addresses.empty())
@@ -280,8 +278,7 @@ bool Cws_machineEx::onGetTargetClusterInfo(IEspContext &context, IEspGetTargetCl
 {
     try
     {
-        if (!context.validateFeatureAccess(FEATURE_URL, SecAccess_Read, false))
-            throw MakeStringException(ECLWATCH_MACHINE_INFO_ACCESS_DENIED, "Failed to Get Machine Information. Permission denied.");
+        context.ensureFeatureAccess(FEATURE_URL, SecAccess_Read, ECLWATCH_MACHINE_INFO_ACCESS_DENIED, "Failed to Get Target Cluster Information. Permission denied.");
 
         StringArray& targetClusters = req.getTargetClusters();
         if (targetClusters.empty())
@@ -2254,8 +2251,7 @@ bool Cws_machineEx::onGetComponentStatus(IEspContext &context, IEspGetComponentS
 {
     try
     {
-        if (!context.validateFeatureAccess(FEATURE_URL, SecAccess_Read, false))
-            throw MakeStringException(ECLWATCH_MACHINE_INFO_ACCESS_DENIED, "Failed to Get Component Status. Permission denied.");
+        context.ensureFeatureAccess(FEATURE_URL, SecAccess_Read, ECLWATCH_MACHINE_INFO_ACCESS_DENIED, "Failed to Get Component Status. Permission denied.");
 
         Owned<IComponentStatusFactory> factory = getComponentStatusFactory();
         Owned<IESPComponentStatusInfo> status = factory->getComponentStatus();
@@ -2296,8 +2292,7 @@ bool Cws_machineEx::onUpdateComponentStatus(IEspContext &context, IEspUpdateComp
 {
     try
     {
-        if (!context.validateFeatureAccess(FEATURE_URL, SecAccess_Write, false))
-            throw MakeStringException(ECLWATCH_MACHINE_INFO_ACCESS_DENIED, "Failed to Update Component Status. Permission denied.");
+        context.ensureFeatureAccess(FEATURE_URL, SecAccess_Write, ECLWATCH_MACHINE_INFO_ACCESS_DENIED, "Failed to Update Component Status. Permission denied.");
 
         const char* reporter = req.getReporter();
         if (!reporter || !*reporter)

+ 1 - 2
esp/services/ws_machine/ws_machineServiceMetrics.cpp

@@ -456,8 +456,7 @@ bool Cws_machineEx::onGetMetrics(IEspContext &context, IEspMetricsRequest &req,
 {
     try
     {
-        if (!context.validateFeatureAccess(METRICS_FEATURE_URL, SecAccess_Read, false))
-            throw MakeStringException(ECLWATCH_METRICS_ACCESS_DENIED, "Failed to Get Metrics. Permission denied.");
+        context.ensureFeatureAccess(METRICS_FEATURE_URL, SecAccess_Read, ECLWATCH_METRICS_ACCESS_DENIED, "Failed to Get Metrics. Permission denied.");
 
         //insert entries in an array - one per IP address, sorted by IP address
         //

+ 3 - 6
esp/services/ws_machine/ws_machineServiceRexec.cpp

@@ -647,8 +647,7 @@ bool Cws_machineEx::onStartStop( IEspContext &context, IEspStartStopRequest &req
 
     try
     {
-        if (!context.validateFeatureAccess(EXEC_FEATURE_URL, SecAccess_Full, false))
-            throw MakeStringException(ECLWATCH_EXECUTION_ACCESS_DENIED, "Permission denied.");
+        context.ensureFeatureAccess(EXEC_FEATURE_URL, SecAccess_Full, ECLWATCH_EXECUTION_ACCESS_DENIED, "Failed to Start/stop. Permission denied.");
 
         char* userName = (char*) m_sTestStr1.str();
         char* password = (char*) m_sTestStr2.str();
@@ -716,8 +715,7 @@ bool Cws_machineEx::onStartStopBegin( IEspContext &context, IEspStartStopBeginRe
 
     try
     {
-        if (!context.validateFeatureAccess(EXEC_FEATURE_URL, SecAccess_Full, false))
-            throw MakeStringException(ECLWATCH_EXECUTION_ACCESS_DENIED, "Permission denied.");
+        context.ensureFeatureAccess(EXEC_FEATURE_URL, SecAccess_Full, ECLWATCH_EXECUTION_ACCESS_DENIED, "Failed to Start/stop. Permission denied.");
 
         StringBuffer addresses;
         StringArray& addresses0 = req.getAddresses();
@@ -762,8 +760,7 @@ bool Cws_machineEx::onStartStopDone( IEspContext &context, IEspStartStopDoneRequ
 
     try
     {
-        if (!context.validateFeatureAccess(EXEC_FEATURE_URL, SecAccess_Full, false))
-            throw MakeStringException(ECLWATCH_EXECUTION_ACCESS_DENIED, "Permission denied.");
+        context.ensureFeatureAccess(EXEC_FEATURE_URL, SecAccess_Full, ECLWATCH_EXECUTION_ACCESS_DENIED, "Failed to Start/stop. Permission denied.");
 
         const char*addresses0 = req.getAddresses();
         bool bStop = req.getStop();