Skip to content

Commit

Permalink
make connector id constraint function generic and apply to prohibitio…
Browse files Browse the repository at this point in the history
…n as well
  • Loading branch information
M-Busk committed Oct 22, 2024
1 parent 44f3f79 commit d29cd14
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import org.eclipse.edc.policy.engine.spi.PolicyContext;
import org.eclipse.edc.policy.model.Operator;
import org.eclipse.edc.policy.model.Permission;
import org.eclipse.edc.policy.model.Rule;
import org.eclipse.edc.spi.agent.ParticipantAgent;
import org.eclipse.edc.spi.monitor.Monitor;

Expand All @@ -13,7 +14,7 @@

import static java.lang.String.format;

public class ConnectorIdConstraintFunction implements AtomicConstraintFunction<Permission> {
public class ConnectorIdConstraintFunction<R extends Rule> implements AtomicConstraintFunction<R> {

private final Monitor monitor;

Expand All @@ -22,7 +23,7 @@ public ConnectorIdConstraintFunction(Monitor monitor) {
}

@Override
public boolean evaluate(Operator operator, Object rightValue, Permission rule, PolicyContext context) {
public boolean evaluate(Operator operator, Object rightValue, R rule, PolicyContext context) {
var contextData = context.getContextData(ParticipantAgent.class);
if (contextData == null) {
return false;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import org.eclipse.edc.policy.engine.spi.PolicyEngine;
import org.eclipse.edc.policy.engine.spi.RuleBindingRegistry;
import org.eclipse.edc.policy.model.Permission;
import org.eclipse.edc.policy.model.Prohibition;
import org.eclipse.edc.runtime.metamodel.annotation.Extension;
import org.eclipse.edc.runtime.metamodel.annotation.Inject;
import org.eclipse.edc.spi.system.ServiceExtension;
Expand Down Expand Up @@ -48,6 +49,7 @@ public void initialize(ServiceExtensionContext context) {

ruleBindingRegistry.bind("use", ALL_SCOPES);
ruleBindingRegistry.bind(CONNECTORID_CONSTRAINT_KEY, ALL_SCOPES);
policyEngine.registerFunction(ALL_SCOPES, Permission.class, CONNECTORID_CONSTRAINT_KEY, new ConnectorIdConstraintFunction(monitor));
policyEngine.registerFunction(ALL_SCOPES, Permission.class, CONNECTORID_CONSTRAINT_KEY, new ConnectorIdConstraintFunction<>(monitor));
policyEngine.registerFunction(ALL_SCOPES, Prohibition.class, CONNECTORID_CONSTRAINT_KEY, new ConnectorIdConstraintFunction<>(monitor));
}
}

0 comments on commit d29cd14

Please sign in to comment.