mirror of
https://github.com/spring-projects/spring-security.git
synced 2026-02-08 14:34:34 +00:00
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 spring-projectsgh-18422 Signed-off-by: pocj8ur4in <pocj8ur4in@gmail.com>
This commit is contained in:
parent
4957c5a7e9
commit
64e863e7df
@ -4,6 +4,7 @@ plugins {
|
||||
}
|
||||
|
||||
apply plugin: 'io.spring.convention.spring-module'
|
||||
apply plugin: 'compile-warnings-error'
|
||||
|
||||
dependencies {
|
||||
management platform(project(":spring-security-dependencies"))
|
||||
|
||||
@ -134,10 +134,6 @@ public class SecurityEvaluationContextExtension implements EvaluationContextExte
|
||||
};
|
||||
root.setAuthorizationManagerFactory(this.authorizationManagerFactory);
|
||||
root.setPermissionEvaluator(this.permissionEvaluator);
|
||||
if (!DEFAULT_ROLE_PREFIX.equals(this.defaultRolePrefix)) {
|
||||
// Ensure SecurityExpressionRoot can strip the custom role prefix
|
||||
root.setDefaultRolePrefix(this.defaultRolePrefix);
|
||||
}
|
||||
return root;
|
||||
}
|
||||
|
||||
|
||||
@ -27,6 +27,7 @@ import org.springframework.security.access.hierarchicalroles.RoleHierarchy;
|
||||
import org.springframework.security.access.hierarchicalroles.RoleHierarchyImpl;
|
||||
import org.springframework.security.authentication.AuthenticationTrustResolver;
|
||||
import org.springframework.security.authentication.TestingAuthenticationToken;
|
||||
import org.springframework.security.authorization.DefaultAuthorizationManagerFactory;
|
||||
import org.springframework.security.core.context.SecurityContextHolder;
|
||||
import org.springframework.security.core.context.SecurityContextHolderStrategy;
|
||||
import org.springframework.security.core.context.SecurityContextImpl;
|
||||
@ -90,6 +91,7 @@ public class SecurityEvaluationContextExtensionTests {
|
||||
}
|
||||
|
||||
@Test
|
||||
@SuppressWarnings("deprecation")
|
||||
public void setTrustResolverWhenNullThenIllegalArgumentException() {
|
||||
TestingAuthenticationToken explicit = new TestingAuthenticationToken("explicit", "password", "ROLE_EXPLICIT");
|
||||
this.securityExtension = new SecurityEvaluationContextExtension(explicit);
|
||||
@ -98,6 +100,7 @@ public class SecurityEvaluationContextExtensionTests {
|
||||
}
|
||||
|
||||
@Test
|
||||
@SuppressWarnings("deprecation")
|
||||
public void setTrustResolverWhenNotNullThenVerifyRootObject() {
|
||||
TestingAuthenticationToken explicit = new TestingAuthenticationToken("explicit", "password", "ROLE_EXPLICIT");
|
||||
this.securityExtension = new SecurityEvaluationContextExtension(explicit);
|
||||
@ -109,6 +112,7 @@ public class SecurityEvaluationContextExtensionTests {
|
||||
}
|
||||
|
||||
@Test
|
||||
@SuppressWarnings("deprecation")
|
||||
public void setRoleHierarchyWhenNullThenIllegalArgumentException() {
|
||||
TestingAuthenticationToken explicit = new TestingAuthenticationToken("explicit", "password", "ROLE_EXPLICIT");
|
||||
this.securityExtension = new SecurityEvaluationContextExtension(explicit);
|
||||
@ -117,6 +121,7 @@ public class SecurityEvaluationContextExtensionTests {
|
||||
}
|
||||
|
||||
@Test
|
||||
@SuppressWarnings("deprecation")
|
||||
public void setRoleHierarchyWhenNotNullThenVerifyRootObject() {
|
||||
TestingAuthenticationToken explicit = new TestingAuthenticationToken("explicit", "password", "ROLE_PARENT");
|
||||
this.securityExtension = new SecurityEvaluationContextExtension(explicit);
|
||||
@ -143,6 +148,7 @@ public class SecurityEvaluationContextExtensionTests {
|
||||
}
|
||||
|
||||
@Test
|
||||
@SuppressWarnings("deprecation")
|
||||
public void setDefaultRolePrefixWhenCustomThenVerifyRootObject() {
|
||||
TestingAuthenticationToken explicit = new TestingAuthenticationToken("explicit", "password", "CUSTOM_EXPLICIT");
|
||||
this.securityExtension = new SecurityEvaluationContextExtension(explicit);
|
||||
@ -151,6 +157,41 @@ public class SecurityEvaluationContextExtensionTests {
|
||||
assertThat(getRoot().hasRole("EXPLICIT")).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setAuthorizationManagerFactoryWithTrustResolverThenVerifyRootObject() {
|
||||
TestingAuthenticationToken explicit = new TestingAuthenticationToken("explicit", "password", "ROLE_EXPLICIT");
|
||||
this.securityExtension = new SecurityEvaluationContextExtension(explicit);
|
||||
AuthenticationTrustResolver trustResolver = mock(AuthenticationTrustResolver.class);
|
||||
given(trustResolver.isAuthenticated(explicit)).willReturn(true);
|
||||
DefaultAuthorizationManagerFactory<Object> factory = new DefaultAuthorizationManagerFactory<>();
|
||||
factory.setTrustResolver(trustResolver);
|
||||
this.securityExtension.setAuthorizationManagerFactory(factory);
|
||||
assertThat(getRoot().isAuthenticated()).isTrue();
|
||||
verify(trustResolver).isAuthenticated(explicit);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setAuthorizationManagerFactoryWithRoleHierarchyThenVerifyRootObject() {
|
||||
TestingAuthenticationToken explicit = new TestingAuthenticationToken("explicit", "password", "ROLE_PARENT");
|
||||
this.securityExtension = new SecurityEvaluationContextExtension(explicit);
|
||||
RoleHierarchy roleHierarchy = RoleHierarchyImpl.fromHierarchy("ROLE_PARENT > ROLE_EXPLICIT");
|
||||
DefaultAuthorizationManagerFactory<Object> factory = new DefaultAuthorizationManagerFactory<>();
|
||||
factory.setRoleHierarchy(roleHierarchy);
|
||||
this.securityExtension.setAuthorizationManagerFactory(factory);
|
||||
assertThat(getRoot().hasRole("EXPLICIT")).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setAuthorizationManagerFactoryWithRolePrefixThenVerifyRootObject() {
|
||||
TestingAuthenticationToken explicit = new TestingAuthenticationToken("explicit", "password", "CUSTOM_EXPLICIT");
|
||||
this.securityExtension = new SecurityEvaluationContextExtension(explicit);
|
||||
String customRolePrefix = "CUSTOM_";
|
||||
DefaultAuthorizationManagerFactory<Object> factory = new DefaultAuthorizationManagerFactory<>();
|
||||
factory.setRolePrefix(customRolePrefix);
|
||||
this.securityExtension.setAuthorizationManagerFactory(factory);
|
||||
assertThat(getRoot().hasRole("EXPLICIT")).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getRootObjectWhenAdditionalFieldsNotSetThenVerifyDefaults() {
|
||||
TestingAuthenticationToken explicit = new TestingAuthenticationToken("explicit", "password", "ROLE_EXPLICIT");
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user