瀏覽代碼

Replace deprecated methods

Claudio Nave 2 年之前
父節點
當前提交
52e12ad64b
共有 24 個文件被更改,包括 52 次插入52 次删除
  1. 3 3
      config/src/main/java/org/springframework/security/config/http/OAuth2ClientBeanDefinitionParser.java
  2. 3 3
      config/src/main/java/org/springframework/security/config/http/OAuth2ClientBeanDefinitionParserUtils.java
  3. 12 12
      config/src/main/java/org/springframework/security/config/http/OAuth2LoginBeanDefinitionParser.java
  4. 6 6
      config/src/main/java/org/springframework/security/config/http/OAuth2ResourceServerBeanDefinitionParser.java
  5. 1 1
      config/src/main/java/org/springframework/security/config/oauth2/client/ClientRegistrationsBeanDefinitionParser.java
  6. 2 2
      config/src/test/java/org/springframework/security/config/doc/SpringSecurityXsdParser.java
  7. 1 1
      core/src/main/java/org/springframework/security/jackson2/SecurityJackson2Modules.java
  8. 2 2
      core/src/test/java/org/springframework/security/provisioning/JdbcUserDetailsManagerTests.java
  9. 1 1
      oauth2/oauth2-client/src/main/java/org/springframework/security/oauth2/client/oidc/userinfo/OidcUserRequestUtils.java
  10. 1 1
      oauth2/oauth2-client/src/main/java/org/springframework/security/oauth2/client/oidc/userinfo/OidcUserService.java
  11. 1 1
      oauth2/oauth2-client/src/main/java/org/springframework/security/oauth2/client/userinfo/DefaultReactiveOAuth2UserService.java
  12. 2 2
      oauth2/oauth2-client/src/main/java/org/springframework/security/oauth2/client/web/OAuth2AuthorizationCodeGrantFilter.java
  13. 3 3
      oauth2/oauth2-client/src/main/java/org/springframework/security/oauth2/client/web/method/annotation/OAuth2AuthorizedClientArgumentResolver.java
  14. 1 1
      oauth2/oauth2-client/src/main/java/org/springframework/security/oauth2/client/web/reactive/function/client/ServerOAuth2AuthorizedClientExchangeFilterFunction.java
  15. 1 1
      oauth2/oauth2-client/src/main/java/org/springframework/security/oauth2/client/web/reactive/function/client/ServletOAuth2AuthorizedClientExchangeFilterFunction.java
  16. 2 2
      oauth2/oauth2-client/src/test/java/org/springframework/security/oauth2/client/endpoint/WebClientReactiveClientCredentialsTokenResponseClientTests.java
  17. 1 1
      oauth2/oauth2-client/src/test/java/org/springframework/security/oauth2/client/jackson2/OAuth2AuthenticationTokenMixinTests.java
  18. 2 2
      oauth2/oauth2-jose/src/main/java/org/springframework/security/oauth2/jwt/NimbusJwtDecoder.java
  19. 1 1
      oauth2/oauth2-jose/src/main/java/org/springframework/security/oauth2/jwt/NimbusReactiveJwtDecoder.java
  20. 1 1
      oauth2/oauth2-resource-server/src/main/java/org/springframework/security/oauth2/server/resource/introspection/NimbusOpaqueTokenIntrospector.java
  21. 2 2
      rsocket/src/test/java/org/springframework/security/rsocket/authentication/AuthenticationPayloadInterceptorTests.java
  22. 1 1
      rsocket/src/test/java/org/springframework/security/rsocket/metadata/BasicAuthenticationDecoderTests.java
  23. 1 1
      web/src/main/java/org/springframework/security/web/FilterInvocation.java
  24. 1 1
      web/src/main/java/org/springframework/security/web/savedrequest/CookieRequestCache.java

+ 3 - 3
config/src/main/java/org/springframework/security/config/http/OAuth2ClientBeanDefinitionParser.java

@@ -94,7 +94,7 @@ final class OAuth2ClientBeanDefinitionParser implements BeanDefinitionParser {
 				.rootBeanDefinition(OAuth2AuthorizationRequestRedirectFilter.class);
 				.rootBeanDefinition(OAuth2AuthorizationRequestRedirectFilter.class);
 		String authorizationRequestResolverRef = (authorizationCodeGrantElt != null)
 		String authorizationRequestResolverRef = (authorizationCodeGrantElt != null)
 				? authorizationCodeGrantElt.getAttribute(ATT_AUTHORIZATION_REQUEST_RESOLVER_REF) : null;
 				? authorizationCodeGrantElt.getAttribute(ATT_AUTHORIZATION_REQUEST_RESOLVER_REF) : null;
-		if (!StringUtils.isEmpty(authorizationRequestResolverRef)) {
+		if (StringUtils.hasLength(authorizationRequestResolverRef)) {
 			authorizationRequestRedirectFilterBuilder.addConstructorArgReference(authorizationRequestResolverRef);
 			authorizationRequestRedirectFilterBuilder.addConstructorArgReference(authorizationRequestResolverRef);
 		}
 		}
 		else {
 		else {
@@ -122,7 +122,7 @@ final class OAuth2ClientBeanDefinitionParser implements BeanDefinitionParser {
 	private BeanMetadataElement getAuthorizationRequestRepository(Element element) {
 	private BeanMetadataElement getAuthorizationRequestRepository(Element element) {
 		String authorizationRequestRepositoryRef = (element != null)
 		String authorizationRequestRepositoryRef = (element != null)
 				? element.getAttribute(ATT_AUTHORIZATION_REQUEST_REPOSITORY_REF) : null;
 				? element.getAttribute(ATT_AUTHORIZATION_REQUEST_REPOSITORY_REF) : null;
-		if (!StringUtils.isEmpty(authorizationRequestRepositoryRef)) {
+		if (StringUtils.hasLength(authorizationRequestRepositoryRef)) {
 			return new RuntimeBeanReference(authorizationRequestRepositoryRef);
 			return new RuntimeBeanReference(authorizationRequestRepositoryRef);
 		}
 		}
 		return BeanDefinitionBuilder.rootBeanDefinition(
 		return BeanDefinitionBuilder.rootBeanDefinition(
@@ -143,7 +143,7 @@ final class OAuth2ClientBeanDefinitionParser implements BeanDefinitionParser {
 	private BeanMetadataElement getAccessTokenResponseClient(Element element) {
 	private BeanMetadataElement getAccessTokenResponseClient(Element element) {
 		String accessTokenResponseClientRef = (element != null)
 		String accessTokenResponseClientRef = (element != null)
 				? element.getAttribute(ATT_ACCESS_TOKEN_RESPONSE_CLIENT_REF) : null;
 				? element.getAttribute(ATT_ACCESS_TOKEN_RESPONSE_CLIENT_REF) : null;
-		if (!StringUtils.isEmpty(accessTokenResponseClientRef)) {
+		if (StringUtils.hasLength(accessTokenResponseClientRef)) {
 			return new RuntimeBeanReference(accessTokenResponseClientRef);
 			return new RuntimeBeanReference(accessTokenResponseClientRef);
 		}
 		}
 		return BeanDefinitionBuilder.rootBeanDefinition(
 		return BeanDefinitionBuilder.rootBeanDefinition(

+ 3 - 3
config/src/main/java/org/springframework/security/config/http/OAuth2ClientBeanDefinitionParserUtils.java

@@ -42,7 +42,7 @@ final class OAuth2ClientBeanDefinitionParserUtils {
 
 
 	static BeanMetadataElement getClientRegistrationRepository(Element element) {
 	static BeanMetadataElement getClientRegistrationRepository(Element element) {
 		String clientRegistrationRepositoryRef = element.getAttribute(ATT_CLIENT_REGISTRATION_REPOSITORY_REF);
 		String clientRegistrationRepositoryRef = element.getAttribute(ATT_CLIENT_REGISTRATION_REPOSITORY_REF);
-		if (!StringUtils.isEmpty(clientRegistrationRepositoryRef)) {
+		if (StringUtils.hasLength(clientRegistrationRepositoryRef)) {
 			return new RuntimeBeanReference(clientRegistrationRepositoryRef);
 			return new RuntimeBeanReference(clientRegistrationRepositoryRef);
 		}
 		}
 		return new RuntimeBeanReference(ClientRegistrationRepository.class);
 		return new RuntimeBeanReference(ClientRegistrationRepository.class);
@@ -50,7 +50,7 @@ final class OAuth2ClientBeanDefinitionParserUtils {
 
 
 	static BeanMetadataElement getAuthorizedClientRepository(Element element) {
 	static BeanMetadataElement getAuthorizedClientRepository(Element element) {
 		String authorizedClientRepositoryRef = element.getAttribute(ATT_AUTHORIZED_CLIENT_REPOSITORY_REF);
 		String authorizedClientRepositoryRef = element.getAttribute(ATT_AUTHORIZED_CLIENT_REPOSITORY_REF);
-		if (!StringUtils.isEmpty(authorizedClientRepositoryRef)) {
+		if (StringUtils.hasLength(authorizedClientRepositoryRef)) {
 			return new RuntimeBeanReference(authorizedClientRepositoryRef);
 			return new RuntimeBeanReference(authorizedClientRepositoryRef);
 		}
 		}
 		return null;
 		return null;
@@ -58,7 +58,7 @@ final class OAuth2ClientBeanDefinitionParserUtils {
 
 
 	static BeanMetadataElement getAuthorizedClientService(Element element) {
 	static BeanMetadataElement getAuthorizedClientService(Element element) {
 		String authorizedClientServiceRef = element.getAttribute(ATT_AUTHORIZED_CLIENT_SERVICE_REF);
 		String authorizedClientServiceRef = element.getAttribute(ATT_AUTHORIZED_CLIENT_SERVICE_REF);
-		if (!StringUtils.isEmpty(authorizedClientServiceRef)) {
+		if (StringUtils.hasLength(authorizedClientServiceRef)) {
 			return new RuntimeBeanReference(authorizedClientServiceRef);
 			return new RuntimeBeanReference(authorizedClientServiceRef);
 		}
 		}
 		return null;
 		return null;

+ 12 - 12
config/src/main/java/org/springframework/security/config/http/OAuth2LoginBeanDefinitionParser.java

@@ -175,7 +175,7 @@ final class OAuth2LoginBeanDefinitionParser implements BeanDefinitionParser {
 		}
 		}
 		Object source = parserContext.extractSource(element);
 		Object source = parserContext.extractSource(element);
 		String loginProcessingUrl = element.getAttribute(ATT_LOGIN_PROCESSING_URL);
 		String loginProcessingUrl = element.getAttribute(ATT_LOGIN_PROCESSING_URL);
-		if (!StringUtils.isEmpty(loginProcessingUrl)) {
+		if (StringUtils.hasLength(loginProcessingUrl)) {
 			WebConfigUtils.validateHttpRedirect(loginProcessingUrl, parserContext, source);
 			WebConfigUtils.validateHttpRedirect(loginProcessingUrl, parserContext, source);
 			oauth2LoginAuthenticationFilterBuilder.addConstructorArgValue(loginProcessingUrl);
 			oauth2LoginAuthenticationFilterBuilder.addConstructorArgValue(loginProcessingUrl);
 		}
 		}
@@ -187,7 +187,7 @@ final class OAuth2LoginBeanDefinitionParser implements BeanDefinitionParser {
 				.rootBeanDefinition(OAuth2LoginAuthenticationProvider.class)
 				.rootBeanDefinition(OAuth2LoginAuthenticationProvider.class)
 				.addConstructorArgValue(accessTokenResponseClient).addConstructorArgValue(oauth2UserService);
 				.addConstructorArgValue(accessTokenResponseClient).addConstructorArgValue(oauth2UserService);
 		String userAuthoritiesMapperRef = element.getAttribute(ATT_USER_AUTHORITIES_MAPPER_REF);
 		String userAuthoritiesMapperRef = element.getAttribute(ATT_USER_AUTHORITIES_MAPPER_REF);
-		if (!StringUtils.isEmpty(userAuthoritiesMapperRef)) {
+		if (StringUtils.hasLength(userAuthoritiesMapperRef)) {
 			oauth2LoginAuthenticationProviderBuilder.addPropertyReference("authoritiesMapper",
 			oauth2LoginAuthenticationProviderBuilder.addPropertyReference("authoritiesMapper",
 					userAuthoritiesMapperRef);
 					userAuthoritiesMapperRef);
 		}
 		}
@@ -197,7 +197,7 @@ final class OAuth2LoginBeanDefinitionParser implements BeanDefinitionParser {
 		BeanDefinitionBuilder oauth2AuthorizationRequestRedirectFilterBuilder = BeanDefinitionBuilder
 		BeanDefinitionBuilder oauth2AuthorizationRequestRedirectFilterBuilder = BeanDefinitionBuilder
 				.rootBeanDefinition(OAuth2AuthorizationRequestRedirectFilter.class);
 				.rootBeanDefinition(OAuth2AuthorizationRequestRedirectFilter.class);
 		String authorizationRequestResolverRef = element.getAttribute(ATT_AUTHORIZATION_REQUEST_RESOLVER_REF);
 		String authorizationRequestResolverRef = element.getAttribute(ATT_AUTHORIZATION_REQUEST_RESOLVER_REF);
-		if (!StringUtils.isEmpty(authorizationRequestResolverRef)) {
+		if (StringUtils.hasLength(authorizationRequestResolverRef)) {
 			oauth2AuthorizationRequestRedirectFilterBuilder.addConstructorArgReference(authorizationRequestResolverRef);
 			oauth2AuthorizationRequestRedirectFilterBuilder.addConstructorArgReference(authorizationRequestResolverRef);
 		}
 		}
 		else {
 		else {
@@ -210,7 +210,7 @@ final class OAuth2LoginBeanDefinitionParser implements BeanDefinitionParser {
 		this.oauth2AuthorizationRequestRedirectFilter = oauth2AuthorizationRequestRedirectFilterBuilder
 		this.oauth2AuthorizationRequestRedirectFilter = oauth2AuthorizationRequestRedirectFilterBuilder
 				.getBeanDefinition();
 				.getBeanDefinition();
 		String authenticationSuccessHandlerRef = element.getAttribute(ATT_AUTHENTICATION_SUCCESS_HANDLER_REF);
 		String authenticationSuccessHandlerRef = element.getAttribute(ATT_AUTHENTICATION_SUCCESS_HANDLER_REF);
-		if (!StringUtils.isEmpty(authenticationSuccessHandlerRef)) {
+		if (StringUtils.hasLength(authenticationSuccessHandlerRef)) {
 			oauth2LoginAuthenticationFilterBuilder.addPropertyReference("authenticationSuccessHandler",
 			oauth2LoginAuthenticationFilterBuilder.addPropertyReference("authenticationSuccessHandler",
 					authenticationSuccessHandlerRef);
 					authenticationSuccessHandlerRef);
 		}
 		}
@@ -222,7 +222,7 @@ final class OAuth2LoginBeanDefinitionParser implements BeanDefinitionParser {
 					successHandlerBuilder.getBeanDefinition());
 					successHandlerBuilder.getBeanDefinition());
 		}
 		}
 		String loginPage = element.getAttribute(ATT_LOGIN_PAGE);
 		String loginPage = element.getAttribute(ATT_LOGIN_PAGE);
-		if (!StringUtils.isEmpty(loginPage)) {
+		if (StringUtils.hasLength(loginPage)) {
 			WebConfigUtils.validateHttpRedirect(loginPage, parserContext, source);
 			WebConfigUtils.validateHttpRedirect(loginPage, parserContext, source);
 			this.oauth2LoginAuthenticationEntryPoint = BeanDefinitionBuilder
 			this.oauth2LoginAuthenticationEntryPoint = BeanDefinitionBuilder
 					.rootBeanDefinition(LoginUrlAuthenticationEntryPoint.class).addConstructorArgValue(loginPage)
 					.rootBeanDefinition(LoginUrlAuthenticationEntryPoint.class).addConstructorArgValue(loginPage)
@@ -239,7 +239,7 @@ final class OAuth2LoginBeanDefinitionParser implements BeanDefinitionParser {
 			}
 			}
 		}
 		}
 		String authenticationFailureHandlerRef = element.getAttribute(ATT_AUTHENTICATION_FAILURE_HANDLER_REF);
 		String authenticationFailureHandlerRef = element.getAttribute(ATT_AUTHENTICATION_FAILURE_HANDLER_REF);
-		if (!StringUtils.isEmpty(authenticationFailureHandlerRef)) {
+		if (StringUtils.hasLength(authenticationFailureHandlerRef)) {
 			oauth2LoginAuthenticationFilterBuilder.addPropertyReference("authenticationFailureHandler",
 			oauth2LoginAuthenticationFilterBuilder.addPropertyReference("authenticationFailureHandler",
 					authenticationFailureHandlerRef);
 					authenticationFailureHandlerRef);
 		}
 		}
@@ -262,7 +262,7 @@ final class OAuth2LoginBeanDefinitionParser implements BeanDefinitionParser {
 
 
 	private BeanMetadataElement getAuthorizationRequestRepository(Element element) {
 	private BeanMetadataElement getAuthorizationRequestRepository(Element element) {
 		String authorizationRequestRepositoryRef = element.getAttribute(ATT_AUTHORIZATION_REQUEST_REPOSITORY_REF);
 		String authorizationRequestRepositoryRef = element.getAttribute(ATT_AUTHORIZATION_REQUEST_REPOSITORY_REF);
-		if (!StringUtils.isEmpty(authorizationRequestRepositoryRef)) {
+		if (StringUtils.hasLength(authorizationRequestRepositoryRef)) {
 			return new RuntimeBeanReference(authorizationRequestRepositoryRef);
 			return new RuntimeBeanReference(authorizationRequestRepositoryRef);
 		}
 		}
 		return BeanDefinitionBuilder.rootBeanDefinition(
 		return BeanDefinitionBuilder.rootBeanDefinition(
@@ -290,11 +290,11 @@ final class OAuth2LoginBeanDefinitionParser implements BeanDefinitionParser {
 		BeanDefinitionBuilder oidcAuthProviderBuilder = BeanDefinitionBuilder.rootBeanDefinition(
 		BeanDefinitionBuilder oidcAuthProviderBuilder = BeanDefinitionBuilder.rootBeanDefinition(
 				"org.springframework.security.oauth2.client.oidc.authentication.OidcAuthorizationCodeAuthenticationProvider")
 				"org.springframework.security.oauth2.client.oidc.authentication.OidcAuthorizationCodeAuthenticationProvider")
 				.addConstructorArgValue(accessTokenResponseClient).addConstructorArgValue(oidcUserService);
 				.addConstructorArgValue(accessTokenResponseClient).addConstructorArgValue(oidcUserService);
-		if (!StringUtils.isEmpty(userAuthoritiesMapperRef)) {
+		if (StringUtils.hasLength(userAuthoritiesMapperRef)) {
 			oidcAuthProviderBuilder.addPropertyReference("authoritiesMapper", userAuthoritiesMapperRef);
 			oidcAuthProviderBuilder.addPropertyReference("authoritiesMapper", userAuthoritiesMapperRef);
 		}
 		}
 		String jwtDecoderFactoryRef = element.getAttribute(ATT_JWT_DECODER_FACTORY_REF);
 		String jwtDecoderFactoryRef = element.getAttribute(ATT_JWT_DECODER_FACTORY_REF);
-		if (!StringUtils.isEmpty(jwtDecoderFactoryRef)) {
+		if (StringUtils.hasLength(jwtDecoderFactoryRef)) {
 			oidcAuthProviderBuilder.addPropertyReference("jwtDecoderFactory", jwtDecoderFactoryRef);
 			oidcAuthProviderBuilder.addPropertyReference("jwtDecoderFactory", jwtDecoderFactoryRef);
 		}
 		}
 		return oidcAuthProviderBuilder.getBeanDefinition();
 		return oidcAuthProviderBuilder.getBeanDefinition();
@@ -302,7 +302,7 @@ final class OAuth2LoginBeanDefinitionParser implements BeanDefinitionParser {
 
 
 	private BeanMetadataElement getOidcUserService(Element element) {
 	private BeanMetadataElement getOidcUserService(Element element) {
 		String oidcUserServiceRef = element.getAttribute(ATT_OIDC_USER_SERVICE_REF);
 		String oidcUserServiceRef = element.getAttribute(ATT_OIDC_USER_SERVICE_REF);
-		if (!StringUtils.isEmpty(oidcUserServiceRef)) {
+		if (StringUtils.hasLength(oidcUserServiceRef)) {
 			return new RuntimeBeanReference(oidcUserServiceRef);
 			return new RuntimeBeanReference(oidcUserServiceRef);
 		}
 		}
 		return BeanDefinitionBuilder
 		return BeanDefinitionBuilder
@@ -312,7 +312,7 @@ final class OAuth2LoginBeanDefinitionParser implements BeanDefinitionParser {
 
 
 	private BeanMetadataElement getOAuth2UserService(Element element) {
 	private BeanMetadataElement getOAuth2UserService(Element element) {
 		String oauth2UserServiceRef = element.getAttribute(ATT_USER_SERVICE_REF);
 		String oauth2UserServiceRef = element.getAttribute(ATT_USER_SERVICE_REF);
-		if (!StringUtils.isEmpty(oauth2UserServiceRef)) {
+		if (StringUtils.hasLength(oauth2UserServiceRef)) {
 			return new RuntimeBeanReference(oauth2UserServiceRef);
 			return new RuntimeBeanReference(oauth2UserServiceRef);
 		}
 		}
 		return BeanDefinitionBuilder
 		return BeanDefinitionBuilder
@@ -322,7 +322,7 @@ final class OAuth2LoginBeanDefinitionParser implements BeanDefinitionParser {
 
 
 	private BeanMetadataElement getAccessTokenResponseClient(Element element) {
 	private BeanMetadataElement getAccessTokenResponseClient(Element element) {
 		String accessTokenResponseClientRef = element.getAttribute(ATT_ACCESS_TOKEN_RESPONSE_CLIENT_REF);
 		String accessTokenResponseClientRef = element.getAttribute(ATT_ACCESS_TOKEN_RESPONSE_CLIENT_REF);
-		if (!StringUtils.isEmpty(accessTokenResponseClientRef)) {
+		if (StringUtils.hasLength(accessTokenResponseClientRef)) {
 			return new RuntimeBeanReference(accessTokenResponseClientRef);
 			return new RuntimeBeanReference(accessTokenResponseClientRef);
 		}
 		}
 		return BeanDefinitionBuilder.rootBeanDefinition(
 		return BeanDefinitionBuilder.rootBeanDefinition(

+ 6 - 6
config/src/main/java/org/springframework/security/config/http/OAuth2ResourceServerBeanDefinitionParser.java

@@ -165,7 +165,7 @@ final class OAuth2ResourceServerBeanDefinitionParser implements BeanDefinitionPa
 
 
 	BeanMetadataElement getAuthenticationManagerResolver(Element element) {
 	BeanMetadataElement getAuthenticationManagerResolver(Element element) {
 		String authenticationManagerResolverRef = element.getAttribute(AUTHENTICATION_MANAGER_RESOLVER_REF);
 		String authenticationManagerResolverRef = element.getAttribute(AUTHENTICATION_MANAGER_RESOLVER_REF);
-		if (!StringUtils.isEmpty(authenticationManagerResolverRef)) {
+		if (StringUtils.hasLength(authenticationManagerResolverRef)) {
 			return new RuntimeBeanReference(authenticationManagerResolverRef);
 			return new RuntimeBeanReference(authenticationManagerResolverRef);
 		}
 		}
 		BeanDefinitionBuilder authenticationManagerResolver = BeanDefinitionBuilder
 		BeanDefinitionBuilder authenticationManagerResolver = BeanDefinitionBuilder
@@ -176,7 +176,7 @@ final class OAuth2ResourceServerBeanDefinitionParser implements BeanDefinitionPa
 
 
 	BeanMetadataElement getBearerTokenResolver(Element element) {
 	BeanMetadataElement getBearerTokenResolver(Element element) {
 		String bearerTokenResolverRef = element.getAttribute(BEARER_TOKEN_RESOLVER_REF);
 		String bearerTokenResolverRef = element.getAttribute(BEARER_TOKEN_RESOLVER_REF);
-		if (StringUtils.isEmpty(bearerTokenResolverRef)) {
+		if (!StringUtils.hasLength(bearerTokenResolverRef)) {
 			return new RootBeanDefinition(DefaultBearerTokenResolver.class);
 			return new RootBeanDefinition(DefaultBearerTokenResolver.class);
 		}
 		}
 		return new RuntimeBeanReference(bearerTokenResolverRef);
 		return new RuntimeBeanReference(bearerTokenResolverRef);
@@ -184,7 +184,7 @@ final class OAuth2ResourceServerBeanDefinitionParser implements BeanDefinitionPa
 
 
 	BeanMetadataElement getEntryPoint(Element element) {
 	BeanMetadataElement getEntryPoint(Element element) {
 		String entryPointRef = element.getAttribute(ENTRY_POINT_REF);
 		String entryPointRef = element.getAttribute(ENTRY_POINT_REF);
-		if (StringUtils.isEmpty(entryPointRef)) {
+		if (!StringUtils.hasLength(entryPointRef)) {
 			return this.authenticationEntryPoint;
 			return this.authenticationEntryPoint;
 		}
 		}
 		return new RuntimeBeanReference(entryPointRef);
 		return new RuntimeBeanReference(entryPointRef);
@@ -223,7 +223,7 @@ final class OAuth2ResourceServerBeanDefinitionParser implements BeanDefinitionPa
 
 
 		Object getDecoder(Element element) {
 		Object getDecoder(Element element) {
 			String decoderRef = element.getAttribute(DECODER_REF);
 			String decoderRef = element.getAttribute(DECODER_REF);
-			if (!StringUtils.isEmpty(decoderRef)) {
+			if (StringUtils.hasLength(decoderRef)) {
 				return new RuntimeBeanReference(decoderRef);
 				return new RuntimeBeanReference(decoderRef);
 			}
 			}
 			BeanDefinitionBuilder builder = BeanDefinitionBuilder
 			BeanDefinitionBuilder builder = BeanDefinitionBuilder
@@ -234,7 +234,7 @@ final class OAuth2ResourceServerBeanDefinitionParser implements BeanDefinitionPa
 
 
 		Object getJwtAuthenticationConverter(Element element) {
 		Object getJwtAuthenticationConverter(Element element) {
 			String jwtDecoderRef = element.getAttribute(JWT_AUTHENTICATION_CONVERTER_REF);
 			String jwtDecoderRef = element.getAttribute(JWT_AUTHENTICATION_CONVERTER_REF);
-			return (!StringUtils.isEmpty(jwtDecoderRef)) ? new RuntimeBeanReference(jwtDecoderRef)
+			return (StringUtils.hasLength(jwtDecoderRef)) ? new RuntimeBeanReference(jwtDecoderRef)
 					: new JwtAuthenticationConverter();
 					: new JwtAuthenticationConverter();
 		}
 		}
 
 
@@ -291,7 +291,7 @@ final class OAuth2ResourceServerBeanDefinitionParser implements BeanDefinitionPa
 
 
 		BeanMetadataElement getIntrospector(Element element) {
 		BeanMetadataElement getIntrospector(Element element) {
 			String introspectorRef = element.getAttribute(INTROSPECTOR_REF);
 			String introspectorRef = element.getAttribute(INTROSPECTOR_REF);
-			if (!StringUtils.isEmpty(introspectorRef)) {
+			if (StringUtils.hasLength(introspectorRef)) {
 				return new RuntimeBeanReference(introspectorRef);
 				return new RuntimeBeanReference(introspectorRef);
 			}
 			}
 			String introspectionUri = element.getAttribute(INTROSPECTION_URI);
 			String introspectionUri = element.getAttribute(INTROSPECTION_URI);

+ 1 - 1
config/src/main/java/org/springframework/security/config/oauth2/client/ClientRegistrationsBeanDefinitionParser.java

@@ -170,7 +170,7 @@ public final class ClientRegistrationsBeanDefinitionParser implements BeanDefini
 		if (providers.containsKey(providerId)) {
 		if (providers.containsKey(providerId)) {
 			Map<String, String> provider = providers.get(providerId);
 			Map<String, String> provider = providers.get(providerId);
 			String issuer = provider.get(ATT_ISSUER_URI);
 			String issuer = provider.get(ATT_ISSUER_URI);
-			if (!StringUtils.isEmpty(issuer)) {
+			if (StringUtils.hasLength(issuer)) {
 				ClientRegistration.Builder builder = ClientRegistrations.fromIssuerLocation(issuer)
 				ClientRegistration.Builder builder = ClientRegistrations.fromIssuerLocation(issuer)
 						.registrationId(registrationId);
 						.registrationId(registrationId);
 				return getBuilder(parserContext, builder, provider);
 				return getBuilder(parserContext, builder, provider);

+ 2 - 2
config/src/test/java/org/springframework/security/config/doc/SpringSecurityXsdParser.java

@@ -179,7 +179,7 @@ public class SpringSecurityXsdParser {
 	 */
 	 */
 	private Element elmt(XmlNode n) {
 	private Element elmt(XmlNode n) {
 		String name = n.attribute("ref");
 		String name = n.attribute("ref");
-		if (StringUtils.isEmpty(name)) {
+		if (!StringUtils.hasLength(name)) {
 			name = n.attribute("name");
 			name = n.attribute("name");
 		}
 		}
 		else {
 		else {
@@ -199,7 +199,7 @@ public class SpringSecurityXsdParser {
 		e.getAttrs().forEach((attr) -> attr.setElmt(e));
 		e.getAttrs().forEach((attr) -> attr.setElmt(e));
 		e.getChildElmts().values().forEach((element) -> element.getParentElmts().put(e.getName(), e));
 		e.getChildElmts().values().forEach((element) -> element.getParentElmts().put(e.getName(), e));
 		String subGrpName = n.attribute("substitutionGroup");
 		String subGrpName = n.attribute("substitutionGroup");
-		if (!StringUtils.isEmpty(subGrpName)) {
+		if (StringUtils.hasLength(subGrpName)) {
 			Element subGrp = elmt(findNode(n, subGrpName.split(":")[1]));
 			Element subGrp = elmt(findNode(n, subGrpName.split(":")[1]));
 			subGrp.getSubGrps().add(e);
 			subGrp.getSubGrps().add(e);
 		}
 		}

+ 1 - 1
core/src/main/java/org/springframework/security/jackson2/SecurityJackson2Modules.java

@@ -127,7 +127,7 @@ public final class SecurityJackson2Modules {
 			Class<? extends Module> securityModule = (Class<? extends Module>) ClassUtils.forName(className, loader);
 			Class<? extends Module> securityModule = (Class<? extends Module>) ClassUtils.forName(className, loader);
 			if (securityModule != null) {
 			if (securityModule != null) {
 				logger.debug(LogMessage.format("Loaded module %s, now registering", className));
 				logger.debug(LogMessage.format("Loaded module %s, now registering", className));
-				return securityModule.newInstance();
+				return securityModule.getConstructor().newInstance();
 			}
 			}
 		}
 		}
 		catch (Exception ex) {
 		catch (Exception ex) {

+ 2 - 2
core/src/test/java/org/springframework/security/provisioning/JdbcUserDetailsManagerTests.java

@@ -145,7 +145,7 @@ public class JdbcUserDetailsManagerTests {
 				AuthorityUtils.createAuthorityList("A", "B"));
 				AuthorityUtils.createAuthorityList("A", "B"));
 		this.manager.createUser(user);
 		this.manager.createUser(user);
 		UserDetails user2 = this.manager.loadUserByUsername(user.getUsername());
 		UserDetails user2 = this.manager.loadUserByUsername(user.getUsername());
-		assertThat(user2).isEqualToComparingFieldByField(user);
+		assertThat(user2).usingRecursiveComparison().isEqualTo(user);
 	}
 	}
 
 
 	@Test
 	@Test
@@ -176,7 +176,7 @@ public class JdbcUserDetailsManagerTests {
 				AuthorityUtils.createAuthorityList("D", "F", "E"));
 				AuthorityUtils.createAuthorityList("D", "F", "E"));
 		this.manager.updateUser(newJoe);
 		this.manager.updateUser(newJoe);
 		UserDetails joe = this.manager.loadUserByUsername(newJoe.getUsername());
 		UserDetails joe = this.manager.loadUserByUsername(newJoe.getUsername());
-		assertThat(joe).isEqualToComparingFieldByField(newJoe);
+		assertThat(joe).usingRecursiveComparison().isEqualTo(newJoe);
 		assertThat(this.cache.getUserMap().containsKey(newJoe.getUsername())).isFalse();
 		assertThat(this.cache.getUserMap().containsKey(newJoe.getUsername())).isFalse();
 	}
 	}
 
 

+ 1 - 1
oauth2/oauth2-client/src/main/java/org/springframework/security/oauth2/client/oidc/userinfo/OidcUserRequestUtils.java

@@ -45,7 +45,7 @@ final class OidcUserRequestUtils {
 	static boolean shouldRetrieveUserInfo(OidcUserRequest userRequest) {
 	static boolean shouldRetrieveUserInfo(OidcUserRequest userRequest) {
 		// Auto-disabled if UserInfo Endpoint URI is not provided
 		// Auto-disabled if UserInfo Endpoint URI is not provided
 		ClientRegistration clientRegistration = userRequest.getClientRegistration();
 		ClientRegistration clientRegistration = userRequest.getClientRegistration();
-		if (StringUtils.isEmpty(clientRegistration.getProviderDetails().getUserInfoEndpoint().getUri())) {
+		if (!StringUtils.hasLength(clientRegistration.getProviderDetails().getUserInfoEndpoint().getUri())) {
 			return false;
 			return false;
 		}
 		}
 		// The Claims requested by the profile, email, address, and phone scope values
 		// The Claims requested by the profile, email, address, and phone scope values

+ 1 - 1
oauth2/oauth2-client/src/main/java/org/springframework/security/oauth2/client/oidc/userinfo/OidcUserService.java

@@ -157,7 +157,7 @@ public class OidcUserService implements OAuth2UserService<OidcUserRequest, OidcU
 	private boolean shouldRetrieveUserInfo(OidcUserRequest userRequest) {
 	private boolean shouldRetrieveUserInfo(OidcUserRequest userRequest) {
 		// Auto-disabled if UserInfo Endpoint URI is not provided
 		// Auto-disabled if UserInfo Endpoint URI is not provided
 		ProviderDetails providerDetails = userRequest.getClientRegistration().getProviderDetails();
 		ProviderDetails providerDetails = userRequest.getClientRegistration().getProviderDetails();
-		if (StringUtils.isEmpty(providerDetails.getUserInfoEndpoint().getUri())) {
+		if (!StringUtils.hasLength(providerDetails.getUserInfoEndpoint().getUri())) {
 			return false;
 			return false;
 		}
 		}
 		// The Claims requested by the profile, email, address, and phone scope values
 		// The Claims requested by the profile, email, address, and phone scope values

+ 1 - 1
oauth2/oauth2-client/src/main/java/org/springframework/security/oauth2/client/userinfo/DefaultReactiveOAuth2UserService.java

@@ -189,7 +189,7 @@ public class DefaultReactiveOAuth2UserService implements ReactiveOAuth2UserServi
 
 
 	private static Mono<UserInfoErrorResponse> parse(ClientResponse httpResponse) {
 	private static Mono<UserInfoErrorResponse> parse(ClientResponse httpResponse) {
 		String wwwAuth = httpResponse.headers().asHttpHeaders().getFirst(HttpHeaders.WWW_AUTHENTICATE);
 		String wwwAuth = httpResponse.headers().asHttpHeaders().getFirst(HttpHeaders.WWW_AUTHENTICATE);
-		if (!StringUtils.isEmpty(wwwAuth)) {
+		if (StringUtils.hasLength(wwwAuth)) {
 			// Bearer token error?
 			// Bearer token error?
 			return Mono.fromCallable(() -> UserInfoErrorResponse.parse(wwwAuth));
 			return Mono.fromCallable(() -> UserInfoErrorResponse.parse(wwwAuth));
 		}
 		}

+ 2 - 2
oauth2/oauth2-client/src/main/java/org/springframework/security/oauth2/client/web/OAuth2AuthorizationCodeGrantFilter.java

@@ -238,10 +238,10 @@ public class OAuth2AuthorizationCodeGrantFilter extends OncePerRequestFilter {
 			OAuth2Error error = ex.getError();
 			OAuth2Error error = ex.getError();
 			UriComponentsBuilder uriBuilder = UriComponentsBuilder.fromUriString(authorizationRequest.getRedirectUri())
 			UriComponentsBuilder uriBuilder = UriComponentsBuilder.fromUriString(authorizationRequest.getRedirectUri())
 					.queryParam(OAuth2ParameterNames.ERROR, error.getErrorCode());
 					.queryParam(OAuth2ParameterNames.ERROR, error.getErrorCode());
-			if (!StringUtils.isEmpty(error.getDescription())) {
+			if (StringUtils.hasLength(error.getDescription())) {
 				uriBuilder.queryParam(OAuth2ParameterNames.ERROR_DESCRIPTION, error.getDescription());
 				uriBuilder.queryParam(OAuth2ParameterNames.ERROR_DESCRIPTION, error.getDescription());
 			}
 			}
-			if (!StringUtils.isEmpty(error.getUri())) {
+			if (StringUtils.hasLength(error.getUri())) {
 				uriBuilder.queryParam(OAuth2ParameterNames.ERROR_URI, error.getUri());
 				uriBuilder.queryParam(OAuth2ParameterNames.ERROR_URI, error.getUri());
 			}
 			}
 			this.redirectStrategy.sendRedirect(request, response, uriBuilder.build().encode().toString());
 			this.redirectStrategy.sendRedirect(request, response, uriBuilder.build().encode().toString());

+ 3 - 3
oauth2/oauth2-client/src/main/java/org/springframework/security/oauth2/client/web/method/annotation/OAuth2AuthorizedClientArgumentResolver.java

@@ -111,7 +111,7 @@ public final class OAuth2AuthorizedClientArgumentResolver implements HandlerMeth
 	public Object resolveArgument(MethodParameter parameter, @Nullable ModelAndViewContainer mavContainer,
 	public Object resolveArgument(MethodParameter parameter, @Nullable ModelAndViewContainer mavContainer,
 			NativeWebRequest webRequest, @Nullable WebDataBinderFactory binderFactory) {
 			NativeWebRequest webRequest, @Nullable WebDataBinderFactory binderFactory) {
 		String clientRegistrationId = this.resolveClientRegistrationId(parameter);
 		String clientRegistrationId = this.resolveClientRegistrationId(parameter);
-		if (StringUtils.isEmpty(clientRegistrationId)) {
+		if (!StringUtils.hasLength(clientRegistrationId)) {
 			throw new IllegalArgumentException("Unable to resolve the Client Registration Identifier. "
 			throw new IllegalArgumentException("Unable to resolve the Client Registration Identifier. "
 					+ "It must be provided via @RegisteredOAuth2AuthorizedClient(\"client1\") or "
 					+ "It must be provided via @RegisteredOAuth2AuthorizedClient(\"client1\") or "
 					+ "@RegisteredOAuth2AuthorizedClient(registrationId = \"client1\").");
 					+ "@RegisteredOAuth2AuthorizedClient(registrationId = \"client1\").");
@@ -137,10 +137,10 @@ public final class OAuth2AuthorizedClientArgumentResolver implements HandlerMeth
 		RegisteredOAuth2AuthorizedClient authorizedClientAnnotation = AnnotatedElementUtils
 		RegisteredOAuth2AuthorizedClient authorizedClientAnnotation = AnnotatedElementUtils
 				.findMergedAnnotation(parameter.getParameter(), RegisteredOAuth2AuthorizedClient.class);
 				.findMergedAnnotation(parameter.getParameter(), RegisteredOAuth2AuthorizedClient.class);
 		Authentication principal = this.securityContextHolderStrategy.getContext().getAuthentication();
 		Authentication principal = this.securityContextHolderStrategy.getContext().getAuthentication();
-		if (!StringUtils.isEmpty(authorizedClientAnnotation.registrationId())) {
+		if (StringUtils.hasLength(authorizedClientAnnotation.registrationId())) {
 			return authorizedClientAnnotation.registrationId();
 			return authorizedClientAnnotation.registrationId();
 		}
 		}
-		if (!StringUtils.isEmpty(authorizedClientAnnotation.value())) {
+		if (StringUtils.hasLength(authorizedClientAnnotation.value())) {
 			return authorizedClientAnnotation.value();
 			return authorizedClientAnnotation.value();
 		}
 		}
 		if (principal != null && OAuth2AuthenticationToken.class.isAssignableFrom(principal.getClass())) {
 		if (principal != null && OAuth2AuthenticationToken.class.isAssignableFrom(principal.getClass())) {

+ 1 - 1
oauth2/oauth2-client/src/main/java/org/springframework/security/oauth2/client/web/reactive/function/client/ServerOAuth2AuthorizedClientExchangeFilterFunction.java

@@ -537,7 +537,7 @@ public final class ServerOAuth2AuthorizedClientExchangeFilterFunction implements
 		private Map<String, String> parseAuthParameters(String wwwAuthenticateHeader) {
 		private Map<String, String> parseAuthParameters(String wwwAuthenticateHeader) {
 			// @formatter:off
 			// @formatter:off
 			return Stream.of(wwwAuthenticateHeader)
 			return Stream.of(wwwAuthenticateHeader)
-					.filter((header) -> !StringUtils.isEmpty(header))
+					.filter((header) -> StringUtils.hasLength(header))
 					.filter((header) -> header.toLowerCase().startsWith("bearer"))
 					.filter((header) -> header.toLowerCase().startsWith("bearer"))
 					.map((header) -> header.substring("bearer".length()))
 					.map((header) -> header.substring("bearer".length()))
 					.map((header) -> header.split(","))
 					.map((header) -> header.split(","))

+ 1 - 1
oauth2/oauth2-client/src/main/java/org/springframework/security/oauth2/client/web/reactive/function/client/ServletOAuth2AuthorizedClientExchangeFilterFunction.java

@@ -652,7 +652,7 @@ public final class ServletOAuth2AuthorizedClientExchangeFilterFunction implement
 
 
 		private Map<String, String> parseAuthParameters(String wwwAuthenticateHeader) {
 		private Map<String, String> parseAuthParameters(String wwwAuthenticateHeader) {
 			// @formatter:off
 			// @formatter:off
-			return Stream.of(wwwAuthenticateHeader).filter((header) -> !StringUtils.isEmpty(header))
+			return Stream.of(wwwAuthenticateHeader).filter((header) -> StringUtils.hasLength(header))
 					.filter((header) -> header.toLowerCase().startsWith("bearer"))
 					.filter((header) -> header.toLowerCase().startsWith("bearer"))
 					.map((header) -> header.substring("bearer".length()))
 					.map((header) -> header.substring("bearer".length()))
 					.map((header) -> header.split(","))
 					.map((header) -> header.split(","))

+ 2 - 2
oauth2/oauth2-client/src/test/java/org/springframework/security/oauth2/client/endpoint/WebClientReactiveClientCredentialsTokenResponseClientTests.java

@@ -101,7 +101,7 @@ public class WebClientReactiveClientCredentialsTokenResponseClientTests {
 				this.clientRegistration.build());
 				this.clientRegistration.build());
 		OAuth2AccessTokenResponse response = this.client.getTokenResponse(request).block();
 		OAuth2AccessTokenResponse response = this.client.getTokenResponse(request).block();
 		RecordedRequest actualRequest = this.server.takeRequest();
 		RecordedRequest actualRequest = this.server.takeRequest();
-		String body = actualRequest.getUtf8Body();
+		String body = actualRequest.getBody().readUtf8();
 		assertThat(response.getAccessToken()).isNotNull();
 		assertThat(response.getAccessToken()).isNotNull();
 		assertThat(response.getAccessToken().getScopes()).containsExactly("create");
 		assertThat(response.getAccessToken().getScopes()).containsExactly("create");
 		assertThat(actualRequest.getHeader(HttpHeaders.AUTHORIZATION))
 		assertThat(actualRequest.getHeader(HttpHeaders.AUTHORIZATION))
@@ -155,7 +155,7 @@ public class WebClientReactiveClientCredentialsTokenResponseClientTests {
 		OAuth2ClientCredentialsGrantRequest request = new OAuth2ClientCredentialsGrantRequest(registration);
 		OAuth2ClientCredentialsGrantRequest request = new OAuth2ClientCredentialsGrantRequest(registration);
 		OAuth2AccessTokenResponse response = this.client.getTokenResponse(request).block();
 		OAuth2AccessTokenResponse response = this.client.getTokenResponse(request).block();
 		RecordedRequest actualRequest = this.server.takeRequest();
 		RecordedRequest actualRequest = this.server.takeRequest();
-		String body = actualRequest.getUtf8Body();
+		String body = actualRequest.getBody().readUtf8();
 		assertThat(response.getAccessToken()).isNotNull();
 		assertThat(response.getAccessToken()).isNotNull();
 		assertThat(response.getAccessToken().getScopes()).containsExactly("create");
 		assertThat(response.getAccessToken().getScopes()).containsExactly("create");
 		assertThat(actualRequest.getHeader(HttpHeaders.AUTHORIZATION)).isNull();
 		assertThat(actualRequest.getHeader(HttpHeaders.AUTHORIZATION)).isNull();

+ 1 - 1
oauth2/oauth2-client/src/test/java/org/springframework/security/oauth2/client/jackson2/OAuth2AuthenticationTokenMixinTests.java

@@ -229,7 +229,7 @@ public class OAuth2AuthenticationTokenMixinTests {
 		String authoritiesJson = (oidcUserAuthority != null) ? asJson(oidcUserAuthority)
 		String authoritiesJson = (oidcUserAuthority != null) ? asJson(oidcUserAuthority)
 				: (oauth2UserAuthority != null) ? asJson(oauth2UserAuthority) : "";
 				: (oauth2UserAuthority != null) ? asJson(oauth2UserAuthority) : "";
 		if (!simpleAuthorities.isEmpty()) {
 		if (!simpleAuthorities.isEmpty()) {
-			if (!StringUtils.isEmpty(authoritiesJson)) {
+			if (StringUtils.hasLength(authoritiesJson)) {
 				authoritiesJson += ",";
 				authoritiesJson += ",";
 			}
 			}
 			authoritiesJson += asJson(simpleAuthorities);
 			authoritiesJson += asJson(simpleAuthorities);

+ 2 - 2
oauth2/oauth2-jose/src/main/java/org/springframework/security/oauth2/jwt/NimbusJwtDecoder.java

@@ -194,7 +194,7 @@ public final class NimbusJwtDecoder implements JwtDecoder {
 
 
 	private String getJwtValidationExceptionMessage(Collection<OAuth2Error> errors) {
 	private String getJwtValidationExceptionMessage(Collection<OAuth2Error> errors) {
 		for (OAuth2Error oAuth2Error : errors) {
 		for (OAuth2Error oAuth2Error : errors) {
-			if (!StringUtils.isEmpty(oAuth2Error.getDescription())) {
+			if (StringUtils.hasLength(oAuth2Error.getDescription())) {
 				return String.format(DECODING_ERROR_MESSAGE_TEMPLATE, oAuth2Error.getDescription());
 				return String.format(DECODING_ERROR_MESSAGE_TEMPLATE, oAuth2Error.getDescription());
 			}
 			}
 		}
 		}
@@ -473,7 +473,7 @@ public final class NimbusJwtDecoder implements JwtDecoder {
 				HttpHeaders headers = new HttpHeaders();
 				HttpHeaders headers = new HttpHeaders();
 				headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON, APPLICATION_JWK_SET_JSON));
 				headers.setAccept(Arrays.asList(MediaType.APPLICATION_JSON, APPLICATION_JWK_SET_JSON));
 				ResponseEntity<String> response = getResponse(url, headers);
 				ResponseEntity<String> response = getResponse(url, headers);
-				if (response.getStatusCodeValue() != 200) {
+				if (response.getStatusCode().value() != 200) {
 					throw new IOException(response.toString());
 					throw new IOException(response.toString());
 				}
 				}
 				return new Resource(response.getBody(), "UTF-8");
 				return new Resource(response.getBody(), "UTF-8");

+ 1 - 1
oauth2/oauth2-jose/src/main/java/org/springframework/security/oauth2/jwt/NimbusReactiveJwtDecoder.java

@@ -203,7 +203,7 @@ public final class NimbusReactiveJwtDecoder implements ReactiveJwtDecoder {
 
 
 	private String getJwtValidationExceptionMessage(Collection<OAuth2Error> errors) {
 	private String getJwtValidationExceptionMessage(Collection<OAuth2Error> errors) {
 		for (OAuth2Error oAuth2Error : errors) {
 		for (OAuth2Error oAuth2Error : errors) {
-			if (!StringUtils.isEmpty(oAuth2Error.getDescription())) {
+			if (StringUtils.hasLength(oAuth2Error.getDescription())) {
 				return oAuth2Error.getDescription();
 				return oAuth2Error.getDescription();
 			}
 			}
 		}
 		}

+ 1 - 1
oauth2/oauth2-resource-server/src/main/java/org/springframework/security/oauth2/server/resource/introspection/NimbusOpaqueTokenIntrospector.java

@@ -177,7 +177,7 @@ public class NimbusOpaqueTokenIntrospector implements OpaqueTokenIntrospector {
 					+ contentType + "' is not compatible with JSON");
 					+ contentType + "' is not compatible with JSON");
 		}
 		}
 
 
-		HTTPResponse response = new HTTPResponse(responseEntity.getStatusCodeValue());
+		HTTPResponse response = new HTTPResponse(responseEntity.getStatusCode().value());
 		response.setHeader(HttpHeaders.CONTENT_TYPE, contentType.toString());
 		response.setHeader(HttpHeaders.CONTENT_TYPE, contentType.toString());
 		response.setContent(responseEntity.getBody());
 		response.setContent(responseEntity.getBody());
 
 

+ 2 - 2
rsocket/src/test/java/org/springframework/security/rsocket/authentication/AuthenticationPayloadInterceptorTests.java

@@ -89,8 +89,8 @@ public class AuthenticationPayloadInterceptorTests {
 		interceptor.intercept(exchange, authenticationPayloadChain).block();
 		interceptor.intercept(exchange, authenticationPayloadChain).block();
 		Authentication authentication = authenticationPayloadChain.getAuthentication();
 		Authentication authentication = authenticationPayloadChain.getAuthentication();
 		verify(this.authenticationManager).authenticate(this.authenticationArg.capture());
 		verify(this.authenticationManager).authenticate(this.authenticationArg.capture());
-		assertThat(this.authenticationArg.getValue()).isEqualToComparingFieldByField(
-				UsernamePasswordAuthenticationToken.unauthenticated("user", "password"));
+		assertThat(this.authenticationArg.getValue()).usingRecursiveComparison()
+				.isEqualTo(UsernamePasswordAuthenticationToken.unauthenticated("user", "password"));
 		assertThat(authentication).isEqualTo(expectedAuthentication);
 		assertThat(authentication).isEqualTo(expectedAuthentication);
 	}
 	}
 
 

+ 1 - 1
rsocket/src/test/java/org/springframework/security/rsocket/metadata/BasicAuthenticationDecoderTests.java

@@ -45,7 +45,7 @@ public class BasicAuthenticationDecoderTests {
 		DataBuffer dataBuffer = encoder.encodeValue(expectedCredentials, factory, elementType, mimeType, hints);
 		DataBuffer dataBuffer = encoder.encodeValue(expectedCredentials, factory, elementType, mimeType, hints);
 		UsernamePasswordMetadata actualCredentials = decoder
 		UsernamePasswordMetadata actualCredentials = decoder
 				.decodeToMono(Mono.just(dataBuffer), elementType, mimeType, hints).block();
 				.decodeToMono(Mono.just(dataBuffer), elementType, mimeType, hints).block();
-		assertThat(actualCredentials).isEqualToComparingFieldByField(expectedCredentials);
+		assertThat(actualCredentials).usingRecursiveComparison().isEqualTo(expectedCredentials);
 	}
 	}
 
 
 }
 }

+ 1 - 1
web/src/main/java/org/springframework/security/web/FilterInvocation.java

@@ -146,7 +146,7 @@ public class FilterInvocation {
 
 
 	@Override
 	@Override
 	public String toString() {
 	public String toString() {
-		if (StringUtils.isEmpty(this.request.getMethod())) {
+		if (!StringUtils.hasLength(this.request.getMethod())) {
 			return "filter invocation [" + getRequestUrl() + "]";
 			return "filter invocation [" + getRequestUrl() + "]";
 		}
 		}
 		else {
 		else {

+ 1 - 1
web/src/main/java/org/springframework/security/web/savedrequest/CookieRequestCache.java

@@ -122,7 +122,7 @@ public class CookieRequestCache implements RequestCache {
 
 
 	private static String getCookiePath(HttpServletRequest request) {
 	private static String getCookiePath(HttpServletRequest request) {
 		String contextPath = request.getContextPath();
 		String contextPath = request.getContextPath();
-		return (!StringUtils.isEmpty(contextPath)) ? contextPath : "/";
+		return (StringUtils.hasLength(contextPath)) ? contextPath : "/";
 	}
 	}
 
 
 	private boolean matchesSavedRequest(HttpServletRequest request, SavedRequest savedRequest) {
 	private boolean matchesSavedRequest(HttpServletRequest request, SavedRequest savedRequest) {