private static PermissionData loadPermissionData(DataInputStream in) throws IOException { PermissionData permData = new PermissionData(); if (in != null) { permData.readPermissionData(in); } return permData; }
private void savePermissionData(DataOutputStream out) throws IOException { permissionData.savePermissionData(out); }
/** * Persists the array of encoded ConditionalPermissionInfo strings * @param infos an array of encoded ConditionalPermissionInfo strings */ public void saveConditionalPermissionInfos(String[] infos) { condPermInfos = infos; setDirty(true); }
DataOutputStream temp = new DataOutputStream(tempBytes); String[] defaultPerms = getPermissionData(null); temp.writeInt(defaultPerms == null ? 0 : defaultPerms.length); if (defaultPerms != null) for (int i = 0; i < defaultPerms.length; i++) temp.writeUTF(defaultPerms[i]); String[] locs = getLocations(); temp.writeInt(locs == null ? 0 : locs.length); if (locs != null) for (int i = 0; i < locs.length; i++) { temp.writeUTF(locs[i]); String[] perms = getPermissionData(locs[i]); temp.writeInt(perms == null ? 0 : perms.length); if (perms != null) temp.writeUTF(perms[j]); String[] condPerms = getConditionalPermissionInfos(); temp.writeInt(condPerms == null ? 0 : condPerms.length); if (condPerms != null) setDirty(false);
this.permissionStorage = permissionStorage; this.impliedPermissionInfos = SecurityAdmin.getPermissionInfos(getClass().getResource(OSGI_BASE_IMPLIED_PERMISSIONS)); String[] encodedDefaultInfos = permissionStorage.getPermissionData(null); PermissionInfo[] defaultInfos = getPermissionInfos(encodedDefaultInfos); if (defaultInfos != null) permAdminDefaults = new PermissionInfoCollection(defaultInfos); String[] locations = permissionStorage.getLocations(); if (locations != null) { for (int i = 0; i < locations.length; i++) { String[] encodedLocationInfos = permissionStorage.getPermissionData(locations[i]); if (encodedLocationInfos != null) { PermissionInfo[] locationInfos = getPermissionInfos(encodedLocationInfos); String[] encodedCondPermInfos = permissionStorage.getConditionalPermissionInfos(); if (encodedCondPermInfos == null) condAdminTable = new SecurityTable(this, new SecurityRow[0]);
for (int i = 0; i < numPerms; i++) perms[i] = temp.readUTF(); setPermissionData(null, perms); for (int j = 0; j < numPerms; j++) perms[j] = temp.readUTF(); setPermissionData(loc, perms); condPerms[i] = temp.readUTF(); saveConditionalPermissionInfos(condPerms); setDirty(false); temp.close();
public void setDefaultPermissions(PermissionInfo[] permissions) { checkAllPermission(); synchronized (lock) { if (permissions == null) permAdminDefaults = null; else permAdminDefaults = new PermissionInfoCollection(permissions); permissionStorage.setPermissionData(null, getEncodedPermissionInfos(permissions)); } }
boolean commit(List<ConditionalPermissionInfo> rows, long updateStamp) { checkAllPermission(); synchronized (lock) { if (updateStamp != timeStamp) return false; SecurityRow[] newRows = new SecurityRow[rows.size()]; Collection<String> names = new ArrayList<String>(); for (int i = 0; i < newRows.length; i++) { Object rowObj = rows.get(i); if (!(rowObj instanceof ConditionalPermissionInfo)) throw new IllegalStateException("Invalid type \"" + rowObj.getClass().getName() + "\" at row: " + i); //$NON-NLS-1$//$NON-NLS-2$ ConditionalPermissionInfo infoBaseRow = (ConditionalPermissionInfo) rowObj; String name = infoBaseRow.getName(); if (name == null) name = generateName(); if (names.contains(name)) throw new IllegalStateException("Duplicate name \"" + name + "\" at row: " + i); //$NON-NLS-1$//$NON-NLS-2$ names.add(name); newRows[i] = new SecurityRow(this, name, infoBaseRow.getConditionInfos(), infoBaseRow.getPermissionInfos(), infoBaseRow.getAccessDecision()); } condAdminTable = new SecurityTable(this, newRows); permissionStorage.saveConditionalPermissionInfos(condAdminTable.getEncodedRows()); timeStamp += 1; return true; } }
DataOutputStream temp = new DataOutputStream(tempBytes); String[] defaultPerms = getPermissionData(null); temp.writeInt(defaultPerms == null ? 0 : defaultPerms.length); if (defaultPerms != null) for (int i = 0; i < defaultPerms.length; i++) temp.writeUTF(defaultPerms[i]); String[] locs = getLocations(); temp.writeInt(locs == null ? 0 : locs.length); if (locs != null) for (int i = 0; i < locs.length; i++) { temp.writeUTF(locs[i]); String[] perms = getPermissionData(locs[i]); temp.writeInt(perms == null ? 0 : perms.length); if (perms != null) temp.writeUTF(perms[j]); String[] condPerms = getConditionalPermissionInfos(); temp.writeInt(condPerms == null ? 0 : condPerms.length); if (condPerms != null) setDirty(false);
this.permissionStorage = permissionStorage; this.impliedPermissionInfos = SecurityAdmin.getPermissionInfos(getClass().getResource(OSGI_BASE_IMPLIED_PERMISSIONS)); String[] encodedDefaultInfos = permissionStorage.getPermissionData(null); PermissionInfo[] defaultInfos = getPermissionInfos(encodedDefaultInfos); if (defaultInfos != null) permAdminDefaults = new PermissionInfoCollection(defaultInfos); String[] locations = permissionStorage.getLocations(); if (locations != null) { for (int i = 0; i < locations.length; i++) { String[] encodedLocationInfos = permissionStorage.getPermissionData(locations[i]); if (encodedLocationInfos != null) { PermissionInfo[] locationInfos = getPermissionInfos(encodedLocationInfos); String[] encodedCondPermInfos = permissionStorage.getConditionalPermissionInfos(); if (encodedCondPermInfos == null) condAdminTable = new SecurityTable(this, new SecurityRow[0]);
for (int i = 0; i < numPerms; i++) perms[i] = temp.readUTF(); setPermissionData(null, perms); for (int j = 0; j < numPerms; j++) perms[j] = temp.readUTF(); setPermissionData(loc, perms); condPerms[i] = temp.readUTF(); saveConditionalPermissionInfos(condPerms); setDirty(false); temp.close();
public void setPermissions(String location, PermissionInfo[] permissions) { checkAllPermission(); synchronized (lock) { permAdminTable.setPermissions(location, permissions); permissionStorage.setPermissionData(location, getEncodedPermissionInfos(permissions)); } }
boolean commit(List<ConditionalPermissionInfo> rows, long updateStamp) { checkAllPermission(); synchronized (lock) { if (updateStamp != timeStamp) return false; SecurityRow[] newRows = new SecurityRow[rows.size()]; Collection<String> names = new ArrayList<String>(); for (int i = 0; i < newRows.length; i++) { Object rowObj = rows.get(i); if (!(rowObj instanceof ConditionalPermissionInfo)) throw new IllegalStateException("Invalid type \"" + rowObj.getClass().getName() + "\" at row: " + i); //$NON-NLS-1$//$NON-NLS-2$ ConditionalPermissionInfo infoBaseRow = (ConditionalPermissionInfo) rowObj; String name = infoBaseRow.getName(); if (name == null) name = generateName(); if (names.contains(name)) throw new IllegalStateException("Duplicate name \"" + name + "\" at row: " + i); //$NON-NLS-1$//$NON-NLS-2$ names.add(name); newRows[i] = new SecurityRow(this, name, infoBaseRow.getConditionInfos(), infoBaseRow.getPermissionInfos(), infoBaseRow.getAccessDecision()); } condAdminTable = new SecurityTable(this, newRows); permissionStorage.saveConditionalPermissionInfos(condAdminTable.getEncodedRows()); timeStamp += 1; return true; } }
DataOutputStream temp = new DataOutputStream(tempBytes); String[] defaultPerms = getPermissionData(null); temp.writeInt(defaultPerms == null ? 0 : defaultPerms.length); if (defaultPerms != null) for (int i = 0; i < defaultPerms.length; i++) temp.writeUTF(defaultPerms[i]); String[] locs = getLocations(); temp.writeInt(locs == null ? 0 : locs.length); if (locs != null) for (int i = 0; i < locs.length; i++) { temp.writeUTF(locs[i]); String[] perms = getPermissionData(locs[i]); temp.writeInt(perms == null ? 0 : perms.length); if (perms != null) temp.writeUTF(perms[j]); String[] condPerms = getConditionalPermissionInfos(); temp.writeInt(condPerms == null ? 0 : condPerms.length); if (condPerms != null) setDirty(false);
this.permissionStorage = permissionStorage; this.impliedPermissionInfos = SecurityAdmin.getPermissionInfos(getClass().getResource(OSGI_BASE_IMPLIED_PERMISSIONS)); String[] encodedDefaultInfos = permissionStorage.getPermissionData(null); PermissionInfo[] defaultInfos = getPermissionInfos(encodedDefaultInfos); if (defaultInfos != null) permAdminDefaults = new PermissionInfoCollection(defaultInfos); String[] locations = permissionStorage.getLocations(); if (locations != null) { for (int i = 0; i < locations.length; i++) { String[] encodedLocationInfos = permissionStorage.getPermissionData(locations[i]); if (encodedLocationInfos != null) { PermissionInfo[] locationInfos = getPermissionInfos(encodedLocationInfos); String[] encodedCondPermInfos = permissionStorage.getConditionalPermissionInfos(); if (encodedCondPermInfos == null) condAdminTable = new SecurityTable(this, new SecurityRow[0]);
for (int i = 0; i < numPerms; i++) perms[i] = temp.readUTF(); setPermissionData(null, perms); for (int j = 0; j < numPerms; j++) perms[j] = temp.readUTF(); setPermissionData(loc, perms); condPerms[i] = temp.readUTF(); saveConditionalPermissionInfos(condPerms); setDirty(false); temp.close();
private static PermissionData loadPermissionData(DataInputStream in) throws IOException { PermissionData permData = new PermissionData(); if (in != null) { permData.readPermissionData(in); } return permData; }
public void setDefaultPermissions(PermissionInfo[] permissions) { checkAllPermission(); synchronized (lock) { if (permissions == null) permAdminDefaults = null; else permAdminDefaults = new PermissionInfoCollection(permissions); permissionStorage.setPermissionData(null, getEncodedPermissionInfos(permissions)); } }
/** * Persists the array of encoded ConditionalPermissionInfo strings * @param infos an array of encoded ConditionalPermissionInfo strings */ public void saveConditionalPermissionInfos(String[] infos) { condPermInfos = infos; setDirty(true); }
private void savePermissionData(DataOutputStream out) throws IOException { permissionData.savePermissionData(out); }