Skip to content

Commit 9d93340

Browse files
committed
RANGER-5309: add RangerBasePlugin.getServiceDefHelper()
1 parent 10523b0 commit 9d93340

3 files changed

Lines changed: 19 additions & 6 deletions

File tree

agents-common/src/main/java/org/apache/ranger/plugin/model/RangerServiceDef.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1417,7 +1417,7 @@ public static class RangerResourceDef implements java.io.Serializable {
14171417
private String rbKeyValidationMessage;
14181418
private Set<String> accessTypeRestrictions;
14191419
private Boolean isValidLeaf;
1420-
private String rrnTemplate;
1420+
private String rrnTemplate; // resource-name template. Examples: {database}.{table}.{column}, {container}@{storageaccount}/{relativepath}
14211421

14221422
public RangerResourceDef() {
14231423
this(null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null);

agents-common/src/main/java/org/apache/ranger/plugin/model/validation/RangerServiceDefHelper.java

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -363,6 +363,10 @@ public boolean isResourceGraphValid() {
363363
return delegate.isResourceGraphValid();
364364
}
365365

366+
public Set<String> getAllResourceNames() {
367+
return delegate.rrnTemplates.keySet();
368+
}
369+
366370
public List<String> getOrderedResourceNames(Collection<String> resourceNames) {
367371
final List<String> ret;
368372

@@ -488,10 +492,8 @@ public Delegate(RangerServiceDef serviceDef, boolean checkForCycles) {
488492
orderedResourceNames = buildSortedResourceNames();
489493

490494
for (RangerResourceDef resourceDef : serviceDef.getResources()) {
491-
String rrnTemplate = resourceDef.getRrnTemplate();
492-
493495
// when rrnTemplate is not specified, create a default one using the full path from root to this resource
494-
if (StringUtils.isBlank(rrnTemplate)) {
496+
if (StringUtils.isBlank(resourceDef.getRrnTemplate())) {
495497
List<String> path = new ArrayList<>();
496498

497499
for (RangerResourceDef resource = resourceDef; resource != null; resource = getResourceDef(resource.getParent(), RangerPolicy.POLICY_TYPE_ACCESS)) {
@@ -500,10 +502,14 @@ public Delegate(RangerServiceDef serviceDef, boolean checkForCycles) {
500502

501503
Collections.reverse(path);
502504

503-
rrnTemplate = "{" + StringUtils.join(path, "}.{") + "}";
505+
String rrnTemplate = "{" + StringUtils.join(path, "}.{") + "}";
506+
507+
LOG.debug("Setting rrnTemplate for resource {}.{} to: {}", serviceName, resourceDef.getName(), rrnTemplate);
508+
509+
resourceDef.setRrnTemplate(rrnTemplate);
504510
}
505511

506-
this.rrnTemplates.put(resourceDef.getName(), rrnTemplate);
512+
this.rrnTemplates.put(resourceDef.getName(), resourceDef.getRrnTemplate());
507513
}
508514
} else {
509515
orderedResourceNames = new ArrayList<>();

agents-common/src/main/java/org/apache/ranger/plugin/service/RangerBasePlugin.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
import org.apache.ranger.plugin.model.RangerPolicy;
4343
import org.apache.ranger.plugin.model.RangerRole;
4444
import org.apache.ranger.plugin.model.RangerServiceDef;
45+
import org.apache.ranger.plugin.model.validation.RangerServiceDefHelper;
4546
import org.apache.ranger.plugin.policyengine.RangerAccessRequest;
4647
import org.apache.ranger.plugin.policyengine.RangerAccessRequestImpl;
4748
import org.apache.ranger.plugin.policyengine.RangerAccessResourceImpl;
@@ -363,6 +364,12 @@ public void setServiceAdmins(Set<String> users) {
363364
pluginConfig.setServiceAdmins(users);
364365
}
365366

367+
public RangerServiceDefHelper getServiceDefHelper() {
368+
RangerPolicyEngine policyEngine = this.policyEngine;
369+
370+
return policyEngine != null ? policyEngine.getServiceDefHelper() : null;
371+
}
372+
366373
public RangerServiceDef getServiceDef() {
367374
RangerPolicyEngine policyEngine = this.policyEngine;
368375

0 commit comments

Comments
 (0)