public AppPermissionImpl(ConditionalPermissionAdmin cpa, String uri) { this.cpa = cpa; this.pTypes = new ArrayList<>(); this.nTypes = new ArrayList<>(); this.allTypes = new HashMap<>(); this.granted = new ConcurrentHashMap<>(); this.blcArgs = new String[1]; this.blcArgs[0] = uri; this.blcInfo = new ConditionInfo(BUNDLE_LOCATION_CONDITION_NAME, blcArgs); this.location = uri; initLogger(); }
AppPermissionImpl(ConditionalPermissionAdmin cpa, AppID man) { this.appID = man; this.cpa = cpa; this.pTypes = new ArrayList<>(); this.nTypes = new ArrayList<>(); this.allTypes = new HashMap<>(); this.granted = new ConcurrentHashMap<>(); this.blcArgs = new String[1]; this.blcArgs[0] = man.getLocation(); this.blcInfo = new ConditionInfo(BUNDLE_LOCATION_CONDITION_NAME, blcArgs); initLogger(); }
/** * Update the permissions from the graph. * @param bundleLocation */ private void updateFromSystemGraph(String bundleLocation) { logger.debug("Updating from system graph"); logger.debug("location: {}, cpa: {}", bundleLocation, cpa); cpa.setConditionalPermissionInfo(bundleLocation, new ConditionInfo[]{ new ConditionInfo( BundleLocationCondition.class.getName(), new String[]{bundleLocation}) }, permissionDefinitions.retrievePermissions(bundleLocation)); }
public boolean matchDNChain(String pattern) { if (contributor == null) return false; return BundleSignerCondition.getCondition(contributor, new ConditionInfo(BundleSignerCondition.class.getName(), new String[] {pattern})).isSatisfied(); }
public boolean matchDNChain(String pattern) { if (contributor == null) return false; return BundleSignerCondition.getCondition(contributor, new ConditionInfo(BundleSignerCondition.class.getName(), new String[] {pattern})).isSatisfied(); }
@Override public Object run() { cpa.setConditionalPermissionInfo(ALL_EXCEPT_USER_BUNDLES_CPINAME, new ConditionInfo[]{ new ConditionInfo( NotBundleLocationCondition.class.getName(), new String[]{"userbundle:*"}) }, new PermissionInfo[]{ new PermissionInfo( AllPermission.class.getName(), "", "") }); return null; // nothing to return } });
@Override public boolean matchDNChain(String pattern) { if (contributor == null) return false; return BundleSignerCondition.getCondition(contributor, new ConditionInfo(BundleSignerCondition.class.getName(), new String[] {pattern})).isSatisfied(); }
public void addPermission(final Bundle bundle, final Class<? extends Permission> type, final String name, final String actions, final ConditionalPermissionAdmin cpAdmin, final ConditionalPermissionUpdate update, final boolean allowOrDeny, int index) { if (type == null) return; if (index == -1) { index = update.getConditionalPermissionInfos().size(); } update.getConditionalPermissionInfos().add(index, cpAdmin.newConditionalPermissionInfo( "testCond" + PERMISSION_COUNTER.getAndIncrement(), new ConditionInfo[]{ new ConditionInfo("org.osgi.service.condpermadmin.BundleLocationCondition", new String[]{bundle.getLocation()})}, new PermissionInfo[]{ new PermissionInfo(type.getName(), name, actions)}, allowOrDeny ? "allow" : "deny")); }
/** * Returns the negated <code>Condition</code> of * <code>BundleLocationCondition</code>. * * @param bundle The Bundle being evaluated. * @param info The ConditionInfo to construct the condition for. * @return Condition object for the requested condition. */ static public Condition getCondition(final Bundle bundle, ConditionInfo info) { ConditionInfo bundleLocationInfo = new ConditionInfo( BundleLocationCondition.class.getName(), info.getArgs()); Condition result = BundleLocationCondition.getCondition(bundle, bundleLocationInfo); return result == Condition.TRUE ? Condition.FALSE: Condition.TRUE; } }
public void addPermission(final Bundle bundle, final Permission perm, final ConditionalPermissionAdmin cpAdmin, final ConditionalPermissionUpdate update, final boolean allowOrDeny, int index) { if (perm == null) return; if (index == -1) { index = update.getConditionalPermissionInfos().size(); } update.getConditionalPermissionInfos().add(index, cpAdmin.newConditionalPermissionInfo( "testCond" + PERMISSION_COUNTER.getAndIncrement(), new ConditionInfo[]{ new ConditionInfo("org.osgi.service.condpermadmin.BundleLocationCondition", new String[]{bundle.getLocation()})}, new PermissionInfo[]{ new PermissionInfo(perm.getClass().getName(), perm.getName(), perm.getActions())}, allowOrDeny ? "allow" : "deny")); }
throw new IllegalArgumentException("expecting close bracket"); conditions.add(new ConditionInfo(type, args)); return pos;
String token = new String(chars, startPos, endPos - startPos + 1); if (endChar == ']') condList.add(new ConditionInfo(token)); else permList.add(new PermissionInfo(token));
String token = new String(chars, startPos, endPos - startPos + 1); if (endChar == ']') condList.add(new ConditionInfo(token)); else permList.add(new PermissionInfo(token));
String token = new String(chars, startPos, endPos - startPos + 1); if (endChar == ']') condList.add(new ConditionInfo(token)); else permList.add(new PermissionInfo(token));
String token = new String(chars, startPos, endPos - startPos + 1); if (endChar == ']') condList.add(new ConditionInfo(token)); else permList.add(new PermissionInfo(token));
String token = new String(chars, startPos, endPos - startPos + 1); if (endChar == ']') condList.add(new ConditionInfo(token)); else permList.add(new PermissionInfo(token));
cpa.setConditionalPermissionInfo(ALL_EXCEPT_USER_BUNDLES_CPINAME, new ConditionInfo[]{ new ConditionInfo( NotBundleLocationCondition.class.getName(), new String[]{"userbundle:*"})
@Override public boolean addPermissions(String user, List<Permission> permissions) { UserRightsProxy urp = urpMap.get(user); if (urp == null) throw new IllegalStateException( String.format("User rights proxy installation for the user %s not yet completed.", user)); Bundle b = urp.getBundle(); final ConditionalPermissionAdmin cpa = (ConditionalPermissionAdmin) permMan.getSystemPermissionAdmin(); final ConditionalPermissionUpdate cpu = cpa.newConditionalPermissionUpdate(); final List<ConditionalPermissionInfo> perms = cpu.getConditionalPermissionInfos(); int id = getNextUserPermId(user, perms); for (Permission perm: permissions) { final String name = "user_" + user + id++; perms.add(perms.size(), cpa.newConditionalPermissionInfo( name, new ConditionInfo[]{ new ConditionInfo("org.osgi.service.condpermadmin.BundleLocationCondition", new String[]{b.getLocation()})}, new PermissionInfo[]{ new PermissionInfo(perm.getClass().getName(), perm.getName(), perm.getActions())}, "allow")); } return cpu.commit(); }
new ConditionInfo("org.osgi.service.condpermadmin.BundleLocationCondition", new String[]{b.getLocation()})}; try ( InputStream is = u.openStream();
String conditionType = userCondition.getType(); String[] args = { userCondition.getFile() }; conditionInfo = new ConditionInfo(conditionType, args);