The following issues were found

oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/authentication/OAuth2AccessTokenAuthenticationToken.java
2 issues
The class 'OAuth2AccessTokenAuthenticationToken' is suspected to be a Data Class (WOC=22.222%, NOPA=0, NOAM=4, WMC=9)
Design

Line: 43

               * @see OAuth2RefreshToken
 * @see OAuth2ClientAuthenticationToken
 */
public class OAuth2AccessTokenAuthenticationToken extends AbstractAuthenticationToken {
	private static final long serialVersionUID = Version.SERIAL_VERSION_UID;
	private final RegisteredClient registeredClient;
	private final Authentication clientPrincipal;
	private final OAuth2AccessToken accessToken;
	private final OAuth2RefreshToken refreshToken;

            

Reported by PMD.

Found non-transient, non-static member. Please mark as transient or provide accessors.
Error

Line: 46

              public class OAuth2AccessTokenAuthenticationToken extends AbstractAuthenticationToken {
	private static final long serialVersionUID = Version.SERIAL_VERSION_UID;
	private final RegisteredClient registeredClient;
	private final Authentication clientPrincipal;
	private final OAuth2AccessToken accessToken;
	private final OAuth2RefreshToken refreshToken;
	private final Map<String, Object> additionalParameters;

	/**

            

Reported by PMD.

oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/authentication/OAuth2AuthorizationGrantAuthenticationToken.java
2 issues
Found non-transient, non-static member. Please mark as transient or provide accessors.
Error

Line: 41

               */
public class OAuth2AuthorizationGrantAuthenticationToken extends AbstractAuthenticationToken {
	private static final long serialVersionUID = Version.SERIAL_VERSION_UID;
	private final AuthorizationGrantType authorizationGrantType;
	private final Authentication clientPrincipal;
	private final Map<String, Object> additionalParameters;

	/**
	 * Sub-class constructor.

            

Reported by PMD.

Found non-transient, non-static member. Please mark as transient or provide accessors.
Error

Line: 42

              public class OAuth2AuthorizationGrantAuthenticationToken extends AbstractAuthenticationToken {
	private static final long serialVersionUID = Version.SERIAL_VERSION_UID;
	private final AuthorizationGrantType authorizationGrantType;
	private final Authentication clientPrincipal;
	private final Map<String, Object> additionalParameters;

	/**
	 * Sub-class constructor.
	 *

            

Reported by PMD.

oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/core/Version.java
1 issues
All methods are static. Consider using a utility class instead. Alternatively, you could add a private constructor or make the class abstract to silence this warning.
Design

Line: 24

               * @author Anoop Garlapati
 * @since 0.0.1
 */
public final class Version {
	private static final int MAJOR = 0;
	private static final int MINOR = 2;
	private static final int PATCH = 1;

	/**

            

Reported by PMD.

oauth2-authorization-server/src/test/java/org/springframework/security/config/util/InMemoryXmlApplicationContext.java
1 issues
Found non-transient, non-static member. Please mark as transient or provide accessors.
Error

Line: 50

              
	static final String SPRING_SECURITY_VERSION = "5.4";

	Resource inMemoryXml;

	public InMemoryXmlApplicationContext(String xml) {
		this(xml, SPRING_SECURITY_VERSION, null);
	}


            

Reported by PMD.

oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/core/authentication/OAuth2AuthenticationContext.java
1 issues
Found non-transient, non-static member. Please mark as transient or provide accessors.
Error

Line: 37

               * @see OAuth2AuthenticationValidator
 */
public final class OAuth2AuthenticationContext implements Context {
	private final Map<Object, Object> context;

	/**
	 * Constructs an {@code OAuth2AuthenticationContext} using the provided parameters.
	 *
	 * @param authentication the {@code Authentication}

            

Reported by PMD.

oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/web/authentication/DelegatingAuthenticationConverter.java
1 issues
Found non-transient, non-static member. Please mark as transient or provide accessors.
Error

Line: 42

               * @see AuthenticationConverter
 */
public final class DelegatingAuthenticationConverter implements AuthenticationConverter {
	private final List<AuthenticationConverter> converters;

	/**
	 * Constructs a {@code DelegatingAuthenticationConverter} using the provided parameters.
	 *
	 * @param converters a {@code List} of {@link AuthenticationConverter}(s)

            

Reported by PMD.

samples/boot/oauth2-integration/authorizationserver/src/main/java/sample/OAuth2AuthorizationServerApplication.java
1 issues
All methods are static. Consider using a utility class instead. Alternatively, you could add a private constructor or make the class abstract to silence this warning.
Design

Line: 26

               * @since 0.0.1
 */
@SpringBootApplication
public class OAuth2AuthorizationServerApplication {

	public static void main(String[] args) {
		SpringApplication.run(OAuth2AuthorizationServerApplication.class, args);
	}


            

Reported by PMD.

oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/JwtEncodingContext.java
1 issues
Found non-transient, non-static member. Please mark as transient or provide accessors.
Error

Line: 41

               * @see JwtEncoder#encode(JoseHeader, JwtClaimsSet)
 */
public final class JwtEncodingContext implements OAuth2TokenContext {
	private final Map<Object, Object> context;

	private JwtEncodingContext(Map<Object, Object> context) {
		this.context = Collections.unmodifiableMap(new HashMap<>(context));
	}


            

Reported by PMD.

oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/core/oidc/http/converter/HttpMessageConverters.java
1 issues
In J2EE, getClassLoader() might not work as expected. Use Thread.currentThread().getContextClassLoader() instead.
Error

Line: 44

              	private static final boolean jsonbPresent;

	static {
		ClassLoader classLoader = HttpMessageConverters.class.getClassLoader();
		jackson2Present = ClassUtils.isPresent("com.fasterxml.jackson.databind.ObjectMapper", classLoader)
				&& ClassUtils.isPresent("com.fasterxml.jackson.core.JsonGenerator", classLoader);
		gsonPresent = ClassUtils.isPresent("com.google.gson.Gson", classLoader);
		jsonbPresent = ClassUtils.isPresent("javax.json.bind.Jsonb", classLoader);
	}

            

Reported by PMD.

oauth2-authorization-server/src/test/java/org/springframework/security/config/annotation/web/configuration/OAuth2AuthorizationServerConfigurationTests.java
1 issues
Potential violation of Law of Demeter (method chain calls)
Design

Line: 43

              						"authorizationServerSecurityFilterChain",
						HttpSecurity.class);
		Integer order = OrderUtils.getOrder(authorizationServerSecurityFilterChainMethod);
		assertThat(order).isEqualTo(Ordered.HIGHEST_PRECEDENCE);
	}

}

            

Reported by PMD.