|
@@ -1,5 +1,5 @@
|
|
|
/*
|
|
|
- * Copyright 2002-2022 the original author or authors.
|
|
|
+ * Copyright 2002-2023 the original author or authors.
|
|
|
*
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
* you may not use this file except in compliance with the License.
|
|
@@ -36,6 +36,16 @@ class AuthorizationManagersTests {
|
|
|
assertThat(decision.isGranted()).isTrue();
|
|
|
}
|
|
|
|
|
|
+ @Test
|
|
|
+ void checkAnyOfWithAllAbstainDefaultDecisionWhenOneGrantedThenGrantedDecision() {
|
|
|
+ AuthorizationDecision allAbstainDefaultDecision = new AuthorizationDecision(false);
|
|
|
+ AuthorizationManager<?> composed = AuthorizationManagers.anyOf(allAbstainDefaultDecision,
|
|
|
+ (a, o) -> new AuthorizationDecision(false), (a, o) -> new AuthorizationDecision(true));
|
|
|
+ AuthorizationDecision decision = composed.check(null, null);
|
|
|
+ assertThat(decision).isNotNull();
|
|
|
+ assertThat(decision.isGranted()).isTrue();
|
|
|
+ }
|
|
|
+
|
|
|
// gh-13069
|
|
|
@Test
|
|
|
void checkAnyOfWhenAllNonAbstainingDeniesThenDeniedDecision() {
|
|
@@ -54,6 +64,58 @@ class AuthorizationManagersTests {
|
|
|
assertThat(decision.isGranted()).isFalse();
|
|
|
}
|
|
|
|
|
|
+ @Test
|
|
|
+ void checkAnyOfWithAllAbstainDefaultDecisionIsDeniedWhenEmptyThenDeniedDecision() {
|
|
|
+ AuthorizationDecision allAbstainDefaultDecision = new AuthorizationDecision(false);
|
|
|
+ AuthorizationManager<?> composed = AuthorizationManagers.anyOf(allAbstainDefaultDecision);
|
|
|
+ AuthorizationDecision decision = composed.check(null, null);
|
|
|
+ assertThat(decision).isNotNull();
|
|
|
+ assertThat(decision.isGranted()).isFalse();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ void checkAnyOfWithAllAbstainDefaultDecisionIsGrantedWhenEmptyThenGrantedDecision() {
|
|
|
+ AuthorizationDecision allAbstainDefaultDecision = new AuthorizationDecision(true);
|
|
|
+ AuthorizationManager<?> composed = AuthorizationManagers.anyOf(allAbstainDefaultDecision);
|
|
|
+ AuthorizationDecision decision = composed.check(null, null);
|
|
|
+ assertThat(decision).isNotNull();
|
|
|
+ assertThat(decision.isGranted()).isTrue();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ void checkAnyOfWithAllAbstainDefaultDecisionIsAbstainWhenEmptyThenAbstainDecision() {
|
|
|
+ AuthorizationDecision allAbstainDefaultDecision = null;
|
|
|
+ AuthorizationManager<?> composed = AuthorizationManagers.anyOf(allAbstainDefaultDecision);
|
|
|
+ AuthorizationDecision decision = composed.check(null, null);
|
|
|
+ assertThat(decision).isNull();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ void checkAnyOfWhenAllAbstainDefaultDecisionIsGrantedAndAllManagersAbstainThenGrantedDecision() {
|
|
|
+ AuthorizationDecision allAbstainDefaultDecision = new AuthorizationDecision(true);
|
|
|
+ AuthorizationManager<?> composed = AuthorizationManagers.anyOf(allAbstainDefaultDecision, (a, o) -> null);
|
|
|
+ AuthorizationDecision decision = composed.check(null, null);
|
|
|
+ assertThat(decision).isNotNull();
|
|
|
+ assertThat(decision.isGranted()).isTrue();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ void checkAnyOfWhenAllAbstainDefaultDecisionIsDeniedAndAllManagersAbstainThenDeniedDecision() {
|
|
|
+ AuthorizationDecision allAbstainDefaultDecision = new AuthorizationDecision(false);
|
|
|
+ AuthorizationManager<?> composed = AuthorizationManagers.anyOf(allAbstainDefaultDecision, (a, o) -> null);
|
|
|
+ AuthorizationDecision decision = composed.check(null, null);
|
|
|
+ assertThat(decision).isNotNull();
|
|
|
+ assertThat(decision.isGranted()).isFalse();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ void checkAnyOfWhenAllAbstainDefaultDecisionIsAbstainAndAllManagersAbstainThenAbstainDecision() {
|
|
|
+ AuthorizationDecision allAbstainDefaultDecision = null;
|
|
|
+ AuthorizationManager<?> composed = AuthorizationManagers.anyOf(allAbstainDefaultDecision, (a, o) -> null);
|
|
|
+ AuthorizationDecision decision = composed.check(null, null);
|
|
|
+ assertThat(decision).isNull();
|
|
|
+ }
|
|
|
+
|
|
|
@Test
|
|
|
void checkAllOfWhenAllGrantedThenGrantedDecision() {
|
|
|
AuthorizationManager<?> composed = AuthorizationManagers.allOf((a, o) -> new AuthorizationDecision(true),
|
|
@@ -63,6 +125,16 @@ class AuthorizationManagersTests {
|
|
|
assertThat(decision.isGranted()).isTrue();
|
|
|
}
|
|
|
|
|
|
+ @Test
|
|
|
+ void checkAllOfWithAllAbstainDefaultDecisionWhenAllGrantedThenGrantedDecision() {
|
|
|
+ AuthorizationDecision allAbstainDefaultDecision = new AuthorizationDecision(false);
|
|
|
+ AuthorizationManager<?> composed = AuthorizationManagers.allOf(allAbstainDefaultDecision,
|
|
|
+ (a, o) -> new AuthorizationDecision(true), (a, o) -> new AuthorizationDecision(true));
|
|
|
+ AuthorizationDecision decision = composed.check(null, null);
|
|
|
+ assertThat(decision).isNotNull();
|
|
|
+ assertThat(decision.isGranted()).isTrue();
|
|
|
+ }
|
|
|
+
|
|
|
// gh-13069
|
|
|
@Test
|
|
|
void checkAllOfWhenAllNonAbstainingGrantsThenGrantedDecision() {
|
|
@@ -82,6 +154,16 @@ class AuthorizationManagersTests {
|
|
|
assertThat(decision.isGranted()).isFalse();
|
|
|
}
|
|
|
|
|
|
+ @Test
|
|
|
+ void checkAllOfWithAllAbstainDefaultDecisionWhenOneDeniedThenDeniedDecision() {
|
|
|
+ AuthorizationDecision allAbstainDefaultDecision = new AuthorizationDecision(true);
|
|
|
+ AuthorizationManager<?> composed = AuthorizationManagers.allOf(allAbstainDefaultDecision,
|
|
|
+ (a, o) -> new AuthorizationDecision(true), (a, o) -> new AuthorizationDecision(false));
|
|
|
+ AuthorizationDecision decision = composed.check(null, null);
|
|
|
+ assertThat(decision).isNotNull();
|
|
|
+ assertThat(decision.isGranted()).isFalse();
|
|
|
+ }
|
|
|
+
|
|
|
@Test
|
|
|
void checkAllOfWhenEmptyThenGrantedDecision() {
|
|
|
AuthorizationManager<?> composed = AuthorizationManagers.allOf();
|
|
@@ -90,4 +172,56 @@ class AuthorizationManagersTests {
|
|
|
assertThat(decision.isGranted()).isTrue();
|
|
|
}
|
|
|
|
|
|
+ @Test
|
|
|
+ void checkAllOfWithAllAbstainDefaultDecisionIsDeniedWhenEmptyThenDeniedDecision() {
|
|
|
+ AuthorizationDecision allAbstainDefaultDecision = new AuthorizationDecision(false);
|
|
|
+ AuthorizationManager<?> composed = AuthorizationManagers.allOf(allAbstainDefaultDecision);
|
|
|
+ AuthorizationDecision decision = composed.check(null, null);
|
|
|
+ assertThat(decision).isNotNull();
|
|
|
+ assertThat(decision.isGranted()).isFalse();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ void checkAllOfWithAllAbstainDefaultDecisionIsGrantedWhenEmptyThenGrantedDecision() {
|
|
|
+ AuthorizationDecision allAbstainDefaultDecision = new AuthorizationDecision(true);
|
|
|
+ AuthorizationManager<?> composed = AuthorizationManagers.allOf(allAbstainDefaultDecision);
|
|
|
+ AuthorizationDecision decision = composed.check(null, null);
|
|
|
+ assertThat(decision).isNotNull();
|
|
|
+ assertThat(decision.isGranted()).isTrue();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ void checkAllOfWithAllAbstainDefaultDecisionIsAbstainWhenEmptyThenAbstainDecision() {
|
|
|
+ AuthorizationDecision allAbstainDefaultDecision = null;
|
|
|
+ AuthorizationManager<?> composed = AuthorizationManagers.allOf(allAbstainDefaultDecision);
|
|
|
+ AuthorizationDecision decision = composed.check(null, null);
|
|
|
+ assertThat(decision).isNull();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ void checkAllOfWhenAllAbstainDefaultDecisionIsDeniedAndAllManagersAbstainThenDeniedDecision() {
|
|
|
+ AuthorizationDecision allAbstainDefaultDecision = new AuthorizationDecision(false);
|
|
|
+ AuthorizationManager<?> composed = AuthorizationManagers.allOf(allAbstainDefaultDecision, (a, o) -> null);
|
|
|
+ AuthorizationDecision decision = composed.check(null, null);
|
|
|
+ assertThat(decision).isNotNull();
|
|
|
+ assertThat(decision.isGranted()).isFalse();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ void checkAllOfWhenAllAbstainDefaultDecisionIsGrantedAndAllManagersAbstainThenGrantedDecision() {
|
|
|
+ AuthorizationDecision allAbstainDefaultDecision = new AuthorizationDecision(true);
|
|
|
+ AuthorizationManager<?> composed = AuthorizationManagers.allOf(allAbstainDefaultDecision, (a, o) -> null);
|
|
|
+ AuthorizationDecision decision = composed.check(null, null);
|
|
|
+ assertThat(decision).isNotNull();
|
|
|
+ assertThat(decision.isGranted()).isTrue();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ void checkAllOfWhenAllAbstainDefaultDecisionIsAbstainAndAllManagersAbstainThenAbstainDecision() {
|
|
|
+ AuthorizationDecision allAbstainDefaultDecision = null;
|
|
|
+ AuthorizationManager<?> composed = AuthorizationManagers.allOf(allAbstainDefaultDecision, (a, o) -> null);
|
|
|
+ AuthorizationDecision decision = composed.check(null, null);
|
|
|
+ assertThat(decision).isNull();
|
|
|
+ }
|
|
|
+
|
|
|
}
|