This is an automated email from the ASF dual-hosted git repository. kishor pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/ranger.git
commit 8b933eaaf435341c1c038e1235ffb788ce6dd0a0 Author: Rakesh Gupta <[email protected]> AuthorDate: Thu Jun 26 18:09:28 2025 +0530 RANGER-4721: Ranger Admin server is not sending DataMasklabel for masking policy audit logs Signed-off-by: Kishor Gollapalliwar <[email protected]> --- .../ranger/service/RangerAuditedModelService.java | 31 ++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/security-admin/src/main/java/org/apache/ranger/service/RangerAuditedModelService.java b/security-admin/src/main/java/org/apache/ranger/service/RangerAuditedModelService.java index 79be9419b..ba548e607 100755 --- a/security-admin/src/main/java/org/apache/ranger/service/RangerAuditedModelService.java +++ b/security-admin/src/main/java/org/apache/ranger/service/RangerAuditedModelService.java @@ -22,6 +22,7 @@ import org.apache.ranger.common.PropertiesUtil; import org.apache.ranger.common.view.VTrxLogAttr; import org.apache.ranger.entity.XXDBBase; +import org.apache.ranger.entity.XXDataMaskTypeDef; import org.apache.ranger.entity.XXGdsDataset; import org.apache.ranger.entity.XXGdsProject; import org.apache.ranger.entity.XXTrxLogV2; @@ -34,6 +35,7 @@ import org.apache.ranger.plugin.model.RangerGds.RangerProject; import org.apache.ranger.plugin.model.RangerGds.RangerSharedResource; import org.apache.ranger.plugin.model.RangerPolicy; +import org.apache.ranger.plugin.model.RangerPolicy.RangerDataMaskPolicyItem; import org.apache.ranger.plugin.util.JsonUtilsV2; import org.apache.ranger.util.RangerEnumUtil; import org.apache.ranger.view.VXTrxLogV2.ObjectChangeInfo; @@ -218,6 +220,10 @@ private void processFieldToCreateTrxLog(VTrxLogAttr trxLogAttr, V obj, V oldObj, String value = getTrxLogAttrValue(obj, trxLogAttr); + if ("dataMaskPolicyItems".equals(trxLogAttr.getAttribName())) { + value = addLabelToDataMaskTxnPolicy(obj, value); + } + if ((action == OPERATION_CREATE_CONTEXT || action == OPERATION_DELETE_CONTEXT) && StringUtils.isBlank(value)) { return; } @@ -252,6 +258,31 @@ private void processFieldToCreateTrxLog(VTrxLogAttr trxLogAttr, V obj, V oldObj, objChangeInfo.addAttribute(trxLogAttr.getAttribUserFriendlyName(), prevValue, newValue); } + public String addLabelToDataMaskTxnPolicy(V obj, String value) { + if (obj instanceof RangerPolicy && ((RangerPolicy) obj).getDataMaskPolicyItems() != null) { + for (RangerDataMaskPolicyItem policyItem : ((RangerPolicy) obj).getDataMaskPolicyItems()) { + if (policyItem.getDataMaskInfo() != null && policyItem.getDataMaskInfo().getDataMaskType() != null) { + String dataMaskType = policyItem.getDataMaskInfo().getDataMaskType(); + List<XXDataMaskTypeDef> dataMaskDefs = daoMgr.getXXDataMaskTypeDef().getAll(); + if (CollectionUtils.isNotEmpty(dataMaskDefs)) { + for (XXDataMaskTypeDef dataMaskTypeDef : dataMaskDefs) { + if (dataMaskTypeDef.getName().equalsIgnoreCase(dataMaskType)) { + String label = dataMaskTypeDef.getLabel(); + StringBuilder sbValue = new StringBuilder(value); + label = ",\"DataMasklabel\":\"" + label + "\""; + int sbValueIndex = sbValue.lastIndexOf("}]"); + sbValue.insert(sbValueIndex, label); + value = sbValue.toString(); + break; + } + } + } + } + } + } + return value; + } + private String toActionString(int action) { switch (action) { case OPERATION_CREATE_CONTEXT:
