Skip to content

Commit 64e863e

Browse files
pocj8ur4inrwinch
authored andcommitted
Remove compiler warnings in spring-security-data
- Add compile-warnings-error plugin to data module - Remove deprecated setDefaultRolePrefix() call in getRootObject() - Add @SuppressWarnings deprecation for tests using deprecated methods - Add tests using AuthorizationManagerFactory Closes gh-18422 Signed-off-by: pocj8ur4in <pocj8ur4in@gmail.com>
1 parent 4957c5a commit 64e863e

3 files changed

Lines changed: 42 additions & 4 deletions

File tree

data/spring-security-data.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ plugins {
44
}
55

66
apply plugin: 'io.spring.convention.spring-module'
7+
apply plugin: 'compile-warnings-error'
78

89
dependencies {
910
management platform(project(":spring-security-dependencies"))

data/src/main/java/org/springframework/security/data/repository/query/SecurityEvaluationContextExtension.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -134,10 +134,6 @@ public SecurityExpressionRoot<Object> getRootObject() {
134134
};
135135
root.setAuthorizationManagerFactory(this.authorizationManagerFactory);
136136
root.setPermissionEvaluator(this.permissionEvaluator);
137-
if (!DEFAULT_ROLE_PREFIX.equals(this.defaultRolePrefix)) {
138-
// Ensure SecurityExpressionRoot can strip the custom role prefix
139-
root.setDefaultRolePrefix(this.defaultRolePrefix);
140-
}
141137
return root;
142138
}
143139

data/src/test/java/org/springframework/security/data/repository/query/SecurityEvaluationContextExtensionTests.java

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import org.springframework.security.access.hierarchicalroles.RoleHierarchyImpl;
2828
import org.springframework.security.authentication.AuthenticationTrustResolver;
2929
import org.springframework.security.authentication.TestingAuthenticationToken;
30+
import org.springframework.security.authorization.DefaultAuthorizationManagerFactory;
3031
import org.springframework.security.core.context.SecurityContextHolder;
3132
import org.springframework.security.core.context.SecurityContextHolderStrategy;
3233
import org.springframework.security.core.context.SecurityContextImpl;
@@ -90,6 +91,7 @@ public void getRootObjectExplicitAuthentication() {
9091
}
9192

9293
@Test
94+
@SuppressWarnings("deprecation")
9395
public void setTrustResolverWhenNullThenIllegalArgumentException() {
9496
TestingAuthenticationToken explicit = new TestingAuthenticationToken("explicit", "password", "ROLE_EXPLICIT");
9597
this.securityExtension = new SecurityEvaluationContextExtension(explicit);
@@ -98,6 +100,7 @@ public void setTrustResolverWhenNullThenIllegalArgumentException() {
98100
}
99101

100102
@Test
103+
@SuppressWarnings("deprecation")
101104
public void setTrustResolverWhenNotNullThenVerifyRootObject() {
102105
TestingAuthenticationToken explicit = new TestingAuthenticationToken("explicit", "password", "ROLE_EXPLICIT");
103106
this.securityExtension = new SecurityEvaluationContextExtension(explicit);
@@ -109,6 +112,7 @@ public void setTrustResolverWhenNotNullThenVerifyRootObject() {
109112
}
110113

111114
@Test
115+
@SuppressWarnings("deprecation")
112116
public void setRoleHierarchyWhenNullThenIllegalArgumentException() {
113117
TestingAuthenticationToken explicit = new TestingAuthenticationToken("explicit", "password", "ROLE_EXPLICIT");
114118
this.securityExtension = new SecurityEvaluationContextExtension(explicit);
@@ -117,6 +121,7 @@ public void setRoleHierarchyWhenNullThenIllegalArgumentException() {
117121
}
118122

119123
@Test
124+
@SuppressWarnings("deprecation")
120125
public void setRoleHierarchyWhenNotNullThenVerifyRootObject() {
121126
TestingAuthenticationToken explicit = new TestingAuthenticationToken("explicit", "password", "ROLE_PARENT");
122127
this.securityExtension = new SecurityEvaluationContextExtension(explicit);
@@ -143,6 +148,7 @@ public void setPermissionEvaluatorWhenNotNullThenVerifyRootObject() {
143148
}
144149

145150
@Test
151+
@SuppressWarnings("deprecation")
146152
public void setDefaultRolePrefixWhenCustomThenVerifyRootObject() {
147153
TestingAuthenticationToken explicit = new TestingAuthenticationToken("explicit", "password", "CUSTOM_EXPLICIT");
148154
this.securityExtension = new SecurityEvaluationContextExtension(explicit);
@@ -151,6 +157,41 @@ public void setDefaultRolePrefixWhenCustomThenVerifyRootObject() {
151157
assertThat(getRoot().hasRole("EXPLICIT")).isTrue();
152158
}
153159

160+
@Test
161+
public void setAuthorizationManagerFactoryWithTrustResolverThenVerifyRootObject() {
162+
TestingAuthenticationToken explicit = new TestingAuthenticationToken("explicit", "password", "ROLE_EXPLICIT");
163+
this.securityExtension = new SecurityEvaluationContextExtension(explicit);
164+
AuthenticationTrustResolver trustResolver = mock(AuthenticationTrustResolver.class);
165+
given(trustResolver.isAuthenticated(explicit)).willReturn(true);
166+
DefaultAuthorizationManagerFactory<Object> factory = new DefaultAuthorizationManagerFactory<>();
167+
factory.setTrustResolver(trustResolver);
168+
this.securityExtension.setAuthorizationManagerFactory(factory);
169+
assertThat(getRoot().isAuthenticated()).isTrue();
170+
verify(trustResolver).isAuthenticated(explicit);
171+
}
172+
173+
@Test
174+
public void setAuthorizationManagerFactoryWithRoleHierarchyThenVerifyRootObject() {
175+
TestingAuthenticationToken explicit = new TestingAuthenticationToken("explicit", "password", "ROLE_PARENT");
176+
this.securityExtension = new SecurityEvaluationContextExtension(explicit);
177+
RoleHierarchy roleHierarchy = RoleHierarchyImpl.fromHierarchy("ROLE_PARENT > ROLE_EXPLICIT");
178+
DefaultAuthorizationManagerFactory<Object> factory = new DefaultAuthorizationManagerFactory<>();
179+
factory.setRoleHierarchy(roleHierarchy);
180+
this.securityExtension.setAuthorizationManagerFactory(factory);
181+
assertThat(getRoot().hasRole("EXPLICIT")).isTrue();
182+
}
183+
184+
@Test
185+
public void setAuthorizationManagerFactoryWithRolePrefixThenVerifyRootObject() {
186+
TestingAuthenticationToken explicit = new TestingAuthenticationToken("explicit", "password", "CUSTOM_EXPLICIT");
187+
this.securityExtension = new SecurityEvaluationContextExtension(explicit);
188+
String customRolePrefix = "CUSTOM_";
189+
DefaultAuthorizationManagerFactory<Object> factory = new DefaultAuthorizationManagerFactory<>();
190+
factory.setRolePrefix(customRolePrefix);
191+
this.securityExtension.setAuthorizationManagerFactory(factory);
192+
assertThat(getRoot().hasRole("EXPLICIT")).isTrue();
193+
}
194+
154195
@Test
155196
public void getRootObjectWhenAdditionalFieldsNotSetThenVerifyDefaults() {
156197
TestingAuthenticationToken explicit = new TestingAuthenticationToken("explicit", "password", "ROLE_EXPLICIT");

0 commit comments

Comments
 (0)