Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRalph Steiner2019-09-19 13:28:21 +0000
committerRalph Steiner2019-10-02 14:51:36 +0000
commit8b14a9af35cf48062ce34b14a3d60d9c0851fb44 (patch)
tree0a12ca336eef07867a2175236e7ecb59671a04e0 /org.eclipse.scout.rt.security
parentee95ff86beddb8d63d1eba3228c574f98e361a3c (diff)
downloadorg.eclipse.scout.rt-8b14a9af35cf48062ce34b14a3d60d9c0851fb44.tar.gz
org.eclipse.scout.rt-8b14a9af35cf48062ce34b14a3d60d9c0851fb44.tar.xz
org.eclipse.scout.rt-8b14a9af35cf48062ce34b14a3d60d9c0851fb44.zip
Add stream methods to IPermissionCollection
Change-Id: I96f4ac261d5aa31dff9ffa2c0b86534666e11850 Reviewed-on: https://git.eclipse.org/r/150199 Tested-by: CI Bot Reviewed-by: Ralph Steiner <rst@bsiag.com>
Diffstat (limited to 'org.eclipse.scout.rt.security')
-rw-r--r--org.eclipse.scout.rt.security/src/main/java/org/eclipse/scout/rt/security/AbstractPermission.java2
-rw-r--r--org.eclipse.scout.rt.security/src/main/java/org/eclipse/scout/rt/security/AccessSupport.java2
-rw-r--r--org.eclipse.scout.rt.security/src/main/java/org/eclipse/scout/rt/security/AllPermissionCollection.java11
-rw-r--r--org.eclipse.scout.rt.security/src/main/java/org/eclipse/scout/rt/security/DefaultPermissionCollection.java20
-rw-r--r--org.eclipse.scout.rt.security/src/main/java/org/eclipse/scout/rt/security/IPermissionCollection.java12
-rw-r--r--org.eclipse.scout.rt.security/src/main/java/org/eclipse/scout/rt/security/NonePermissionCollection.java11
6 files changed, 53 insertions, 5 deletions
diff --git a/org.eclipse.scout.rt.security/src/main/java/org/eclipse/scout/rt/security/AbstractPermission.java b/org.eclipse.scout.rt.security/src/main/java/org/eclipse/scout/rt/security/AbstractPermission.java
index 76a36139f0..8cdfe5f4d3 100644
--- a/org.eclipse.scout.rt.security/src/main/java/org/eclipse/scout/rt/security/AbstractPermission.java
+++ b/org.eclipse.scout.rt.security/src/main/java/org/eclipse/scout/rt/security/AbstractPermission.java
@@ -102,7 +102,7 @@ public abstract class AbstractPermission extends Permission implements IPermissi
}
protected void validateLevel() {
- Assertions.assertNotNull(m_level, "Granted level is not set");
+ Assertions.assertNotNull(m_level, "Granted level is not set on {}", this);
}
@Override
diff --git a/org.eclipse.scout.rt.security/src/main/java/org/eclipse/scout/rt/security/AccessSupport.java b/org.eclipse.scout.rt.security/src/main/java/org/eclipse/scout/rt/security/AccessSupport.java
index e2c786cbf5..f8e574a118 100644
--- a/org.eclipse.scout.rt.security/src/main/java/org/eclipse/scout/rt/security/AccessSupport.java
+++ b/org.eclipse.scout.rt.security/src/main/java/org/eclipse/scout/rt/security/AccessSupport.java
@@ -78,7 +78,7 @@ public class AccessSupport {
.withContextInfo("permission", "{}", p);
}
- public AccessForbiddenException getAccessCheckFailedException(IPermission p) {
+ protected AccessForbiddenException getAccessCheckFailedException(IPermission p) {
return new AccessForbiddenException(p.getAccessCheckFailedMessage())
.withContextInfo("permission", "{}", p);
}
diff --git a/org.eclipse.scout.rt.security/src/main/java/org/eclipse/scout/rt/security/AllPermissionCollection.java b/org.eclipse.scout.rt.security/src/main/java/org/eclipse/scout/rt/security/AllPermissionCollection.java
index 2d50b41968..3a32934d41 100644
--- a/org.eclipse.scout.rt.security/src/main/java/org/eclipse/scout/rt/security/AllPermissionCollection.java
+++ b/org.eclipse.scout.rt.security/src/main/java/org/eclipse/scout/rt/security/AllPermissionCollection.java
@@ -14,6 +14,7 @@ import java.security.AllPermission;
import java.security.Permission;
import java.util.Collections;
import java.util.Enumeration;
+import java.util.stream.Stream;
public class AllPermissionCollection extends AbstractPermissionCollection {
private static final long serialVersionUID = 1L;
@@ -49,4 +50,14 @@ public class AllPermissionCollection extends AbstractPermissionCollection {
public Enumeration<Permission> elements() {
return Collections.enumeration(Collections.singletonList(m_allPermission));
}
+
+ @Override
+ public Stream<IPermission> stream() {
+ return Stream.empty();
+ }
+
+ @Override
+ public Stream<IPermission> stream(IPermission permission) {
+ return Stream.empty();
+ }
}
diff --git a/org.eclipse.scout.rt.security/src/main/java/org/eclipse/scout/rt/security/DefaultPermissionCollection.java b/org.eclipse.scout.rt.security/src/main/java/org/eclipse/scout/rt/security/DefaultPermissionCollection.java
index 62b53a5565..0135434938 100644
--- a/org.eclipse.scout.rt.security/src/main/java/org/eclipse/scout/rt/security/DefaultPermissionCollection.java
+++ b/org.eclipse.scout.rt.security/src/main/java/org/eclipse/scout/rt/security/DefaultPermissionCollection.java
@@ -56,6 +56,7 @@ public class DefaultPermissionCollection extends AbstractPermissionCollection {
@Override
public void add(IPermission permission) {
+ assertNotReadOnly();
m_permissions.computeIfAbsent(permission.getName(), k -> new ArrayList<>()).add((IPermission) permission);
}
@@ -102,8 +103,7 @@ public class DefaultPermissionCollection extends AbstractPermissionCollection {
return PermissionLevel.UNDEFINED;
}
- Set<PermissionLevel> grantedLevels = m_permissions.getOrDefault(permission.getName(), Collections.emptyList()).stream()
- .filter(def -> def.matches(permission))
+ Set<PermissionLevel> grantedLevels = stream(permission)
.map(IPermission::getLevel)
.collect(Collectors.toSet());
@@ -118,8 +118,22 @@ public class DefaultPermissionCollection extends AbstractPermissionCollection {
}
@Override
+ public Stream<IPermission> stream() {
+ return m_permissions.values().stream().flatMap(Collection::stream);
+ }
+
+ @Override
+ public Stream<IPermission> stream(IPermission permission) {
+ if (permission == null) {
+ return Stream.empty();
+ }
+ return m_permissions.getOrDefault(permission.getName(), Collections.emptyList()).stream()
+ .filter(def -> def.matches(permission));
+ }
+
+ @Override
public Enumeration<Permission> elements() {
return EnumerationUtility.asEnumeration(
- Stream.concat(m_permissions.values().stream().flatMap(Collection::stream).map(Permission.class::cast), m_javaPermissions.stream()).iterator());
+ Stream.concat(stream().map(Permission.class::cast), m_javaPermissions.stream()).iterator());
}
}
diff --git a/org.eclipse.scout.rt.security/src/main/java/org/eclipse/scout/rt/security/IPermissionCollection.java b/org.eclipse.scout.rt.security/src/main/java/org/eclipse/scout/rt/security/IPermissionCollection.java
index 53fbfda592..6151af5b9b 100644
--- a/org.eclipse.scout.rt.security/src/main/java/org/eclipse/scout/rt/security/IPermissionCollection.java
+++ b/org.eclipse.scout.rt.security/src/main/java/org/eclipse/scout/rt/security/IPermissionCollection.java
@@ -12,6 +12,7 @@ package org.eclipse.scout.rt.security;
import java.security.Permission;
import java.security.PermissionCollection;
+import java.util.stream.Stream;
import org.eclipse.scout.rt.platform.Bean;
@@ -57,6 +58,17 @@ public interface IPermissionCollection {
PermissionLevel getGrantedPermissionLevel(IPermission permission);
/**
+ * @return stream with all assigned {@link IPermission}
+ */
+ Stream<IPermission> stream();
+
+ /**
+ * @param permission
+ * @return stream with {@link IPermission} for which holds {@link IPermission#matches(IPermission)}
+ */
+ Stream<IPermission> stream(IPermission permission);
+
+ /**
* @see PermissionCollection#add(Permission)
*/
void add(Permission permission);
diff --git a/org.eclipse.scout.rt.security/src/main/java/org/eclipse/scout/rt/security/NonePermissionCollection.java b/org.eclipse.scout.rt.security/src/main/java/org/eclipse/scout/rt/security/NonePermissionCollection.java
index 51653af681..749e8bafde 100644
--- a/org.eclipse.scout.rt.security/src/main/java/org/eclipse/scout/rt/security/NonePermissionCollection.java
+++ b/org.eclipse.scout.rt.security/src/main/java/org/eclipse/scout/rt/security/NonePermissionCollection.java
@@ -13,6 +13,7 @@ package org.eclipse.scout.rt.security;
import java.security.Permission;
import java.util.Collections;
import java.util.Enumeration;
+import java.util.stream.Stream;
public class NonePermissionCollection extends AbstractPermissionCollection {
private static final long serialVersionUID = 1L;
@@ -46,4 +47,14 @@ public class NonePermissionCollection extends AbstractPermissionCollection {
public Enumeration<Permission> elements() {
return Collections.enumeration(Collections.emptyList());
}
+
+ @Override
+ public Stream<IPermission> stream() {
+ return Stream.empty();
+ }
+
+ @Override
+ public Stream<IPermission> stream(IPermission permission) {
+ return Stream.empty();
+ }
}

Back to the top