Remove compiler warnings in spring-security-ldap

- Add
  compile-warnings-error plugin to ldap module

- Replace
  org.springframework.lang.NonNull with org.jspecify.annotations.NonNull

-
  Add @SuppressWarnings for unchecked/rawtypes/deprecation warnings

Closes
  gh-18405

Signed-off-by: LeeJiWon <dlwldnjs1009@gmail.com>
This commit is contained in:
LeeJiWon 2026-01-22 21:49:56 +09:00 committed by Rob Winch
parent a23be5e625
commit 9fa0a34b4c
12 changed files with 15 additions and 4 deletions

View File

@ -1,5 +1,6 @@
apply plugin: 'io.spring.convention.spring-module'
apply plugin: 'javadoc-warnings-error'
apply plugin: 'compile-warnings-error'
dependencies {
management platform(project(":spring-security-dependencies"))

View File

@ -68,6 +68,7 @@ public class DefaultSpringSecurityContextSourceTests {
}
@Test
@SuppressWarnings({ "unchecked", "rawtypes" })
public void poolingFlagIsSetWhenAuthenticationDnMatchesManagerUserDn() {
EnvExposingDefaultSpringSecurityContextSource ctxSrc = new EnvExposingDefaultSpringSecurityContextSource(
"ldap://blah:789/dc=springframework,dc=org");
@ -79,6 +80,7 @@ public class DefaultSpringSecurityContextSourceTests {
}
@Test
@SuppressWarnings({ "unchecked", "rawtypes" })
public void poolingFlagIsNotSetWhenAuthenticationDnIsNotManagerUserDn() {
EnvExposingDefaultSpringSecurityContextSource ctxSrc = new EnvExposingDefaultSpringSecurityContextSource(
"ldap://blah:789/dc=springframework,dc=org");
@ -170,13 +172,13 @@ public class DefaultSpringSecurityContextSourceTests {
.isThrownBy(() -> new DefaultSpringSecurityContextSource(serverUrls, "dc=springframework,dc=org"));
}
@SuppressWarnings({ "unchecked", "rawtypes" })
static class EnvExposingDefaultSpringSecurityContextSource extends DefaultSpringSecurityContextSource {
EnvExposingDefaultSpringSecurityContextSource(String providerUrl) {
super(providerUrl);
}
@SuppressWarnings("unchecked")
Hashtable getAuthenticatedEnvForTest(String userDn, String password) {
return getAuthenticatedEnv(userDn, password);
}

View File

@ -89,6 +89,7 @@ public class SpringSecurityLdapTemplateITests {
// }
@Test
@SuppressWarnings("unchecked")
public void namingExceptionIsTranslatedCorrectly() {
assertThatExceptionOfType(UncategorizedLdapException.class)
.isThrownBy(() -> this.template.executeReadOnly((ContextExecutor) (dirContext) -> {

View File

@ -47,6 +47,7 @@ import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException
*/
@ExtendWith(SpringExtension.class)
@ContextConfiguration(classes = UnboundIdContainerConfig.class)
@SuppressWarnings("deprecation")
public class PasswordComparisonAuthenticatorTests {
@Autowired

View File

@ -57,6 +57,7 @@ public class DefaultLdapAuthoritiesPopulatorGetGrantedAuthoritiesTests {
}
@Test
@SuppressWarnings("deprecation")
public void groupSearchDoesNotAllowNullRoles() {
this.populator.setRolePrefix("ROLE_");
this.populator.setGroupRoleAttribute("ou");

View File

@ -116,6 +116,7 @@ public class NestedLdapAuthoritiesPopulatorTests {
}
@Test
@SuppressWarnings("unchecked")
public void testClosureDudeJDevelopersWithMembershipAsAttributeValues() {
this.populator.setAttributeNames(new HashSet(Arrays.asList("member")));

View File

@ -21,11 +21,11 @@ import java.util.LinkedHashSet;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jspecify.annotations.NonNull;
import org.springframework.context.MessageSource;
import org.springframework.context.MessageSourceAware;
import org.springframework.context.support.MessageSourceAccessor;
import org.springframework.lang.NonNull;
import org.springframework.ldap.core.DirContextOperations;
import org.springframework.security.authentication.AuthenticationProvider;
import org.springframework.security.authentication.BadCredentialsException;

View File

@ -21,11 +21,12 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.jspecify.annotations.NonNull;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.context.MessageSource;
import org.springframework.context.MessageSourceAware;
import org.springframework.context.support.MessageSourceAccessor;
import org.springframework.lang.NonNull;
import org.springframework.ldap.core.ContextSource;
import org.springframework.security.core.SpringSecurityMessageSource;
import org.springframework.security.ldap.search.LdapUserSearch;

View File

@ -25,6 +25,7 @@ import com.unboundid.ldap.sdk.DN;
import com.unboundid.ldap.sdk.Entry;
import com.unboundid.ldap.sdk.LDAPException;
import com.unboundid.ldif.LDIFReader;
import org.jspecify.annotations.NonNull;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.DisposableBean;
@ -34,7 +35,6 @@ import org.springframework.context.ApplicationContextAware;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.Lifecycle;
import org.springframework.core.io.Resource;
import org.springframework.lang.NonNull;
import org.springframework.util.StringUtils;
/**

View File

@ -369,6 +369,7 @@ public class LdapUserDetailsManager implements UserDetailsManager {
this.groupSearchFilter = "(" + groupMemberAttributeName + "={0})";
}
@SuppressWarnings("unchecked")
public void setRoleMapper(AttributesMapper roleMapper) {
this.roleMapper = roleMapper;
}

View File

@ -38,6 +38,7 @@ import static org.mockito.Mockito.mock;
public class PasswordComparisonAuthenticatorMockTests {
@Test
@SuppressWarnings("unchecked")
public void ldapCompareOperationIsUsedWhenPasswordIsNotRetrieved() throws Exception {
final DirContext dirCtx = mock(DirContext.class);
final BaseLdapPathContextSource source = mock(BaseLdapPathContextSource.class);

View File

@ -38,6 +38,7 @@ import static org.mockito.Mockito.mock;
public class UserDetailsServiceLdapAuthoritiesPopulatorTests {
@Test
@SuppressWarnings("unchecked")
public void delegationToUserDetailsServiceReturnsCorrectRoles() {
UserDetailsService uds = mock(UserDetailsService.class);
UserDetails user = mock(UserDetails.class);