|  | @@ -1,5 +1,5 @@
 | 
	
		
			
				|  |  |  /*
 | 
	
		
			
				|  |  | - * Copyright 2020-2023 the original author or authors.
 | 
	
		
			
				|  |  | + * Copyright 2020-2025 the original author or authors.
 | 
	
		
			
				|  |  |   *
 | 
	
		
			
				|  |  |   * Licensed under the Apache License, Version 2.0 (the "License");
 | 
	
		
			
				|  |  |   * you may not use this file except in compliance with the License.
 | 
	
	
		
			
				|  | @@ -34,6 +34,7 @@ import org.springframework.security.oauth2.core.OAuth2Error;
 | 
	
		
			
				|  |  |  import org.springframework.security.oauth2.core.OAuth2ErrorCodes;
 | 
	
		
			
				|  |  |  import org.springframework.security.oauth2.core.OAuth2UserCode;
 | 
	
		
			
				|  |  |  import org.springframework.security.oauth2.core.endpoint.OAuth2ParameterNames;
 | 
	
		
			
				|  |  | +import org.springframework.security.oauth2.core.oidc.OidcScopes;
 | 
	
		
			
				|  |  |  import org.springframework.security.oauth2.server.authorization.OAuth2Authorization;
 | 
	
		
			
				|  |  |  import org.springframework.security.oauth2.server.authorization.OAuth2AuthorizationService;
 | 
	
		
			
				|  |  |  import org.springframework.security.oauth2.server.authorization.client.RegisteredClient;
 | 
	
	
		
			
				|  | @@ -165,6 +166,23 @@ public class OAuth2DeviceAuthorizationRequestAuthenticationProviderTests {
 | 
	
		
			
				|  |  |  		// @formatter:on
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +	@Test
 | 
	
		
			
				|  |  | +	public void authenticateWhenOpenIdScopeThenThrowOAuth2AuthenticationException() {
 | 
	
		
			
				|  |  | +		RegisteredClient registeredClient = TestRegisteredClients.registeredClient()
 | 
	
		
			
				|  |  | +			.authorizationGrantType(AuthorizationGrantType.DEVICE_CODE)
 | 
	
		
			
				|  |  | +			.scope(OidcScopes.OPENID)
 | 
	
		
			
				|  |  | +			.build();
 | 
	
		
			
				|  |  | +		Authentication authentication = createAuthentication(registeredClient);
 | 
	
		
			
				|  |  | +		// @formatter:off
 | 
	
		
			
				|  |  | +		assertThatExceptionOfType(OAuth2AuthenticationException.class)
 | 
	
		
			
				|  |  | +				.isThrownBy(() -> this.authenticationProvider.authenticate(authentication))
 | 
	
		
			
				|  |  | +				.withMessageContaining(OAuth2ParameterNames.SCOPE)
 | 
	
		
			
				|  |  | +				.extracting(OAuth2AuthenticationException::getError)
 | 
	
		
			
				|  |  | +				.extracting(OAuth2Error::getErrorCode)
 | 
	
		
			
				|  |  | +				.isEqualTo(OAuth2ErrorCodes.INVALID_SCOPE);
 | 
	
		
			
				|  |  | +		// @formatter:on
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	@Test
 | 
	
		
			
				|  |  |  	public void authenticateWhenDeviceCodeIsNullThenThrowOAuth2AuthenticationException() {
 | 
	
		
			
				|  |  |  		@SuppressWarnings("unchecked")
 |