@Override public ConditionalPermissionInfo getDeclarationInfo() { // Check if this type was already applied. In this case the declaration // can be obtained by CPA. if (pInfo != null) return pInfo; ConditionInfo conds[] = new ConditionInfo[this.conds.size()]; PermissionInfo perms[] = new PermissionInfo[this.perms.size()]; String access; if (mode) access = ConditionalPermissionInfo.ALLOW; else access = ConditionalPermissionInfo.DENY; ConditionalPermissionInfo cpi = cpa.newConditionalPermissionInfo(name, this.conds.toArray(conds), (this.perms .toArray(perms)), access); pInfo = cpi; return pInfo; }
@Override public String getDeclarationString() { // Check if this type was already applied. In this case the declaration // can be obtained by CPA. if (pInfo != null) return pInfo.getEncoded(); ConditionInfo conds[] = new ConditionInfo[this.conds.size()]; PermissionInfo perms[] = new PermissionInfo[this.perms.size()]; String access; if (mode) access = ConditionalPermissionInfo.ALLOW; else access = ConditionalPermissionInfo.DENY; ConditionalPermissionInfo cpi = cpa.newConditionalPermissionInfo(name, this.conds.toArray(conds), (this.perms .toArray(perms)), access); pInfo = cpi; return pInfo.getEncoded(); }
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")); }
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")); }
cpi = cpa.newConditionalPermissionInfo(pInfo); } catch (Exception e) { try {
@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(); }
ConditionInfo conds[] = new ConditionInfo[aptimpl.conds.size()]; PermissionInfo perms[] = new PermissionInfo[aptimpl.perms.size()]; ConditionalPermissionInfo cpi = cpa.newConditionalPermissionInfo(name, aptimpl.conds.toArray(conds), aptimpl.perms.toArray(perms), ConditionalPermissionInfo.DENY); ConditionInfo conds[] = new ConditionInfo[aptimpl.conds.size()]; PermissionInfo perms[] = new PermissionInfo[aptimpl.perms.size()]; ConditionalPermissionInfo cpi = cpa.newConditionalPermissionInfo(name, aptimpl.conds.toArray(conds), aptimpl.perms.toArray(perms), ConditionalPermissionInfo.ALLOW);
ConditionalPermissionInfo cpi = cpa.newConditionalPermissionInfo(null, bundleLocationInfo, new PermissionInfo[]{pi}, "allow"); cpu.getConditionalPermissionInfos().add(cpi);
ConditionalPermissionInfo tmpCpi = cpa.newConditionalPermissionInfo( cpInfo.getName(), cia, tmpPinfos, cpInfo.getAccessDecision()); if (changedPInfos == null) PermissionInfo[] tmpPinfos = new PermissionInfo[1]; tmpPinfos[0] = new PermissionInfo(permissionName, filterString, actions); ConditionalPermissionInfo tmpCpi = cpa.newConditionalPermissionInfo( "deny_" + System.currentTimeMillis(), cia, tmpPinfos, cpInfo.DENY); if (changedPInfos == null)
ConditionalPermissionInfo tmpCpi = cpa.newConditionalPermissionInfo( cpInfo.getName(), cia, tmpPinfos, cpInfo.getAccessDecision()); if (changedPInfos == null) PermissionInfo[] tmpPinfos = new PermissionInfo[1]; tmpPinfos[0] = new PermissionInfo(permissionName, filterString, actions); ConditionalPermissionInfo tmpCpi = cpa.newConditionalPermissionInfo( "deny_" + System.currentTimeMillis(), cia, tmpPinfos, cpInfo.DENY); if (changedPInfos == null)
@Override public AppPermissionImpl setDefaultPolicies() { defaultPolicies = new AppPermissionImpl(cpa); /* * Scan permission table */ boolean match = false; // First get the permissions table ConditionalPermissionUpdate cpu = cpa.newConditionalPermissionUpdate(); List<ConditionalPermissionInfo> piList = cpu.getConditionalPermissionInfos(); for (ConditionalPermissionInfo pInfo : piList) { // Get the condition infos if its a BundleLocationCondition, in this // case its not a default policy ConditionInfo cia[] = pInfo.getConditionInfos(); if (cia.length != 0) for (ConditionInfo tmpci : cia) { if (tmpci.getType().equals(BUNDLE_LOCATION_CONDITION_NAME)) { match = true; break; } } if (!match) { ConditionalPermissionInfo pInfoAccess = cpa.newConditionalPermissionInfo(pInfo.getName(), pInfo.getConditionInfos(), pInfo.getPermissionInfos(), pInfo.getAccessDecision()); defaultPolicies.add(pInfoAccess); } match = false; } return defaultPolicies; }