From 980d75325a3d58ca72389d6c704fdd508999374c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Lindstr=C3=B6m?= Date: Wed, 31 May 2023 20:18:35 +0200 Subject: [PATCH 1/2] Fix to save all values for multi-valued device grant parameters Fixes gh-1269 --- ...th2DeviceAuthorizationConsentAuthenticationConverter.java | 2 +- ...th2DeviceAuthorizationRequestAuthenticationConverter.java | 2 +- .../OAuth2DeviceCodeAuthenticationConverter.java | 2 +- .../OAuth2DeviceVerificationAuthenticationConverter.java | 2 +- .../web/OAuth2DeviceAuthorizationEndpointFilterTests.java | 4 +++- .../web/OAuth2DeviceVerificationEndpointFilterTests.java | 3 ++- ...viceAuthorizationConsentAuthenticationConverterTests.java | 5 +++-- ...viceAuthorizationRequestAuthenticationConverterTests.java | 5 +++-- .../OAuth2DeviceCodeAuthenticationConverterTests.java | 5 +++-- ...OAuth2DeviceVerificationAuthenticationConverterTests.java | 5 +++-- 10 files changed, 21 insertions(+), 14 deletions(-) diff --git a/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceAuthorizationConsentAuthenticationConverter.java b/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceAuthorizationConsentAuthenticationConverter.java index d6652376..35538f9c 100644 --- a/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceAuthorizationConsentAuthenticationConverter.java +++ b/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceAuthorizationConsentAuthenticationConverter.java @@ -110,7 +110,7 @@ public final class OAuth2DeviceAuthorizationConsentAuthenticationConverter imple !key.equals(OAuth2ParameterNames.USER_CODE) && !key.equals(OAuth2ParameterNames.STATE) && !key.equals(OAuth2ParameterNames.SCOPE)) { - additionalParameters.put(key, value.get(0)); + additionalParameters.put(key, value.size() == 1 ? value.get(0) : value.toArray(new String[0])); } }); diff --git a/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceAuthorizationRequestAuthenticationConverter.java b/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceAuthorizationRequestAuthenticationConverter.java index dfb23c98..ff067ec3 100644 --- a/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceAuthorizationRequestAuthenticationConverter.java +++ b/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceAuthorizationRequestAuthenticationConverter.java @@ -75,7 +75,7 @@ public final class OAuth2DeviceAuthorizationRequestAuthenticationConverter imple parameters.forEach((key, value) -> { if (!key.equals(OAuth2ParameterNames.CLIENT_ID) && !key.equals(OAuth2ParameterNames.SCOPE)) { - additionalParameters.put(key, value.get(0)); + additionalParameters.put(key, value.size() == 1 ? value.get(0) : value.toArray(new String[0])); } }); diff --git a/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceCodeAuthenticationConverter.java b/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceCodeAuthenticationConverter.java index 8738b21e..8cd91967 100644 --- a/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceCodeAuthenticationConverter.java +++ b/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceCodeAuthenticationConverter.java @@ -74,7 +74,7 @@ public final class OAuth2DeviceCodeAuthenticationConverter implements Authentica if (!key.equals(OAuth2ParameterNames.GRANT_TYPE) && !key.equals(OAuth2ParameterNames.CLIENT_ID) && !key.equals(OAuth2ParameterNames.DEVICE_CODE)) { - additionalParameters.put(key, value.get(0)); + additionalParameters.put(key, value.size() == 1 ? value.get(0) : value.toArray(new String[0])); } }); diff --git a/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceVerificationAuthenticationConverter.java b/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceVerificationAuthenticationConverter.java index b5248352..fa6f06c6 100644 --- a/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceVerificationAuthenticationConverter.java +++ b/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceVerificationAuthenticationConverter.java @@ -80,7 +80,7 @@ public final class OAuth2DeviceVerificationAuthenticationConverter implements Au Map additionalParameters = new HashMap<>(); parameters.forEach((key, value) -> { if (!key.equals(OAuth2ParameterNames.USER_CODE)) { - additionalParameters.put(key, value.get(0)); + additionalParameters.put(key, value.size() == 1 ? value.get(0) : value.toArray(new String[0])); } }); diff --git a/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/web/OAuth2DeviceAuthorizationEndpointFilterTests.java b/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/web/OAuth2DeviceAuthorizationEndpointFilterTests.java index 8a3193f6..9f7a8929 100644 --- a/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/web/OAuth2DeviceAuthorizationEndpointFilterTests.java +++ b/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/web/OAuth2DeviceAuthorizationEndpointFilterTests.java @@ -195,6 +195,7 @@ public class OAuth2DeviceAuthorizationEndpointFilterTests { MockHttpServletRequest request = createRequest(); request.addParameter("custom-param-1", "custom-value-1"); + request.addParameter("custom-param-2", "custom-value-2a", "custom-value-2b"); MockHttpServletResponse response = new MockHttpServletResponse(); FilterChain filterChain = mock(FilterChain.class); this.filter.doFilter(request, response, filterChain); @@ -211,7 +212,8 @@ public class OAuth2DeviceAuthorizationEndpointFilterTests { assertThat(deviceAuthorizationRequestAuthentication.getPrincipal()).isEqualTo(clientPrincipal); assertThat(deviceAuthorizationRequestAuthentication.getScopes()).isEmpty(); assertThat(deviceAuthorizationRequestAuthentication.getAdditionalParameters()) - .containsExactly(entry("custom-param-1", "custom-value-1")); + .containsExactly(entry("custom-param-1", "custom-value-1"), + entry("custom-param-2", new String[] { "custom-value-2a", "custom-value-2b" })); // @formatter:off assertThat(deviceAuthorizationRequestAuthentication.getDetails()) .asInstanceOf(type(WebAuthenticationDetails.class)) diff --git a/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/web/OAuth2DeviceVerificationEndpointFilterTests.java b/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/web/OAuth2DeviceVerificationEndpointFilterTests.java index 94e82668..61340ae6 100644 --- a/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/web/OAuth2DeviceVerificationEndpointFilterTests.java +++ b/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/web/OAuth2DeviceVerificationEndpointFilterTests.java @@ -187,6 +187,7 @@ public class OAuth2DeviceVerificationEndpointFilterTests { request.addParameter(OAuth2ParameterNames.STATE, STATE); request.addParameter(OAuth2ParameterNames.USER_CODE, USER_CODE); request.addParameter("custom-param-1", "custom-value-1"); + request.addParameter("custom-param-2", "custom-value-2a", "custom-value-2b"); MockHttpServletResponse response = new MockHttpServletResponse(); FilterChain filterChain = mock(FilterChain.class); this.filter.doFilter(request, response, filterChain); @@ -207,7 +208,7 @@ public class OAuth2DeviceVerificationEndpointFilterTests { assertThat(deviceAuthorizationConsentAuthentication.getUserCode()).isEqualTo(USER_CODE); assertThat(deviceAuthorizationConsentAuthentication.getScopes()).containsExactly("scope-1", "scope-2"); assertThat(deviceAuthorizationConsentAuthentication.getAdditionalParameters()) - .containsExactly(entry("custom-param-1", "custom-value-1")); + .containsExactly(entry("custom-param-1", "custom-value-1"), entry("custom-param-2", new String[]{ "custom-value-2a", "custom-value-2b" })); } @Test diff --git a/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceAuthorizationConsentAuthenticationConverterTests.java b/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceAuthorizationConsentAuthenticationConverterTests.java index c22cb023..4b7be29c 100644 --- a/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceAuthorizationConsentAuthenticationConverterTests.java +++ b/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceAuthorizationConsentAuthenticationConverterTests.java @@ -246,7 +246,7 @@ public class OAuth2DeviceAuthorizationConsentAuthenticationConverterTests { request.addParameter(OAuth2ParameterNames.SCOPE, "message.read"); request.addParameter(OAuth2ParameterNames.SCOPE, "message.write"); request.addParameter("param-1", "value-1"); - request.addParameter("param-2", "value-2"); + request.addParameter("param-2", "value-2", "value-2b"); SecurityContextImpl securityContext = new SecurityContextImpl(); securityContext.setAuthentication(new TestingAuthenticationToken("user", null)); @@ -261,7 +261,8 @@ public class OAuth2DeviceAuthorizationConsentAuthenticationConverterTests { assertThat(authentication.getUserCode()).isEqualTo(USER_CODE); assertThat(authentication.getScopes()).containsExactly("message.read", "message.write"); assertThat(authentication.getAdditionalParameters()) - .containsExactly(entry("param-1", "value-1"), entry("param-2", "value-2")); + .containsExactly(entry("param-1", "value-1"), + entry("param-2", new String[]{"value-2", "value-2b"})); } @Test diff --git a/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceAuthorizationRequestAuthenticationConverterTests.java b/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceAuthorizationRequestAuthenticationConverterTests.java index 147f7409..9790d585 100644 --- a/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceAuthorizationRequestAuthenticationConverterTests.java +++ b/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceAuthorizationRequestAuthenticationConverterTests.java @@ -95,7 +95,7 @@ public class OAuth2DeviceAuthorizationRequestAuthenticationConverterTests { request.addParameter(OAuth2ParameterNames.CLIENT_ID, CLIENT_ID); request.addParameter(OAuth2ParameterNames.SCOPE, "message.read message.write"); request.addParameter("param-1", "value-1"); - request.addParameter("param-2", "value-2"); + request.addParameter("param-2", "value-2", "value-2b"); SecurityContextImpl securityContext = new SecurityContextImpl(); securityContext.setAuthentication(new TestingAuthenticationToken(CLIENT_ID, null)); @@ -108,7 +108,8 @@ public class OAuth2DeviceAuthorizationRequestAuthenticationConverterTests { assertThat(authentication.getAuthorizationUri()).endsWith(AUTHORIZATION_URI); assertThat(authentication.getScopes()).containsExactly("message.read", "message.write"); assertThat(authentication.getAdditionalParameters()) - .containsExactly(entry("param-1", "value-1"), entry("param-2", "value-2")); + .containsExactly(entry("param-1", "value-1"), + entry("param-2", new String[]{"value-2", "value-2b"})); } private static MockHttpServletRequest createRequest() { diff --git a/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceCodeAuthenticationConverterTests.java b/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceCodeAuthenticationConverterTests.java index 605dc7b6..2788421b 100644 --- a/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceCodeAuthenticationConverterTests.java +++ b/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceCodeAuthenticationConverterTests.java @@ -102,7 +102,7 @@ public class OAuth2DeviceCodeAuthenticationConverterTests { request.addParameter(OAuth2ParameterNames.GRANT_TYPE, AuthorizationGrantType.DEVICE_CODE.getValue()); request.addParameter(OAuth2ParameterNames.DEVICE_CODE, DEVICE_CODE); request.addParameter("param-1", "value-1"); - request.addParameter("param-2", "value-2"); + request.addParameter("param-2", "value-2", "value-2b"); SecurityContextImpl securityContext = new SecurityContextImpl(); securityContext.setAuthentication(new TestingAuthenticationToken(CLIENT_ID, null)); @@ -114,7 +114,8 @@ public class OAuth2DeviceCodeAuthenticationConverterTests { assertThat(authentication.getDeviceCode()).isEqualTo(DEVICE_CODE); assertThat(authentication.getPrincipal()).isInstanceOf(TestingAuthenticationToken.class); assertThat(authentication.getAdditionalParameters()) - .containsExactly(entry("param-1", "value-1"), entry("param-2", "value-2")); + .containsExactly(entry("param-1", "value-1"), + entry("param-2", new String[]{"value-2", "value-2b"})); } private static MockHttpServletRequest createRequest() { diff --git a/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceVerificationAuthenticationConverterTests.java b/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceVerificationAuthenticationConverterTests.java index 639c7cca..cafdac1d 100644 --- a/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceVerificationAuthenticationConverterTests.java +++ b/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceVerificationAuthenticationConverterTests.java @@ -144,7 +144,7 @@ public class OAuth2DeviceVerificationAuthenticationConverterTests { MockHttpServletRequest request = createRequest(); request.addParameter(OAuth2ParameterNames.USER_CODE, USER_CODE); request.addParameter("param-1", "value-1"); - request.addParameter("param-2", "value-2"); + request.addParameter("param-2", "value-2", "value-2b"); SecurityContextImpl securityContext = new SecurityContextImpl(); securityContext.setAuthentication(new TestingAuthenticationToken("user", null)); @@ -156,7 +156,8 @@ public class OAuth2DeviceVerificationAuthenticationConverterTests { assertThat(authentication.getPrincipal()).isInstanceOf(TestingAuthenticationToken.class); assertThat(authentication.getUserCode()).isEqualTo(USER_CODE); assertThat(authentication.getAdditionalParameters()) - .containsExactly(entry("param-1", "value-1"), entry("param-2", "value-2")); + .containsExactly(entry("param-1", "value-1"), + entry("param-2", new String[]{"value-2", "value-2b"})); } private static MockHttpServletRequest createRequest() { From 1cffa18c326093ec207396ae0c2893e3c786c79e Mon Sep 17 00:00:00 2001 From: Joe Grandja Date: Fri, 16 Jun 2023 11:34:13 -0400 Subject: [PATCH 2/2] Polish gh-1252 --- ...th2DeviceAuthorizationConsentAuthenticationConverter.java | 2 +- ...th2DeviceAuthorizationRequestAuthenticationConverter.java | 2 +- .../OAuth2DeviceCodeAuthenticationConverter.java | 2 +- .../OAuth2DeviceVerificationAuthenticationConverter.java | 2 +- .../web/OAuth2DeviceAuthorizationEndpointFilterTests.java | 4 ++-- .../web/OAuth2DeviceVerificationEndpointFilterTests.java | 5 +++-- ...viceAuthorizationConsentAuthenticationConverterTests.java | 4 ++-- ...viceAuthorizationRequestAuthenticationConverterTests.java | 4 ++-- .../OAuth2DeviceCodeAuthenticationConverterTests.java | 4 ++-- ...OAuth2DeviceVerificationAuthenticationConverterTests.java | 4 ++-- 10 files changed, 17 insertions(+), 16 deletions(-) diff --git a/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceAuthorizationConsentAuthenticationConverter.java b/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceAuthorizationConsentAuthenticationConverter.java index 35538f9c..54cd5c8f 100644 --- a/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceAuthorizationConsentAuthenticationConverter.java +++ b/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceAuthorizationConsentAuthenticationConverter.java @@ -110,7 +110,7 @@ public final class OAuth2DeviceAuthorizationConsentAuthenticationConverter imple !key.equals(OAuth2ParameterNames.USER_CODE) && !key.equals(OAuth2ParameterNames.STATE) && !key.equals(OAuth2ParameterNames.SCOPE)) { - additionalParameters.put(key, value.size() == 1 ? value.get(0) : value.toArray(new String[0])); + additionalParameters.put(key, (value.size() == 1) ? value.get(0) : value.toArray(new String[0])); } }); diff --git a/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceAuthorizationRequestAuthenticationConverter.java b/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceAuthorizationRequestAuthenticationConverter.java index ff067ec3..5e2c8cb2 100644 --- a/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceAuthorizationRequestAuthenticationConverter.java +++ b/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceAuthorizationRequestAuthenticationConverter.java @@ -75,7 +75,7 @@ public final class OAuth2DeviceAuthorizationRequestAuthenticationConverter imple parameters.forEach((key, value) -> { if (!key.equals(OAuth2ParameterNames.CLIENT_ID) && !key.equals(OAuth2ParameterNames.SCOPE)) { - additionalParameters.put(key, value.size() == 1 ? value.get(0) : value.toArray(new String[0])); + additionalParameters.put(key, (value.size() == 1) ? value.get(0) : value.toArray(new String[0])); } }); diff --git a/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceCodeAuthenticationConverter.java b/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceCodeAuthenticationConverter.java index 8cd91967..c61941b0 100644 --- a/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceCodeAuthenticationConverter.java +++ b/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceCodeAuthenticationConverter.java @@ -74,7 +74,7 @@ public final class OAuth2DeviceCodeAuthenticationConverter implements Authentica if (!key.equals(OAuth2ParameterNames.GRANT_TYPE) && !key.equals(OAuth2ParameterNames.CLIENT_ID) && !key.equals(OAuth2ParameterNames.DEVICE_CODE)) { - additionalParameters.put(key, value.size() == 1 ? value.get(0) : value.toArray(new String[0])); + additionalParameters.put(key, (value.size() == 1) ? value.get(0) : value.toArray(new String[0])); } }); diff --git a/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceVerificationAuthenticationConverter.java b/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceVerificationAuthenticationConverter.java index fa6f06c6..98c09056 100644 --- a/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceVerificationAuthenticationConverter.java +++ b/oauth2-authorization-server/src/main/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceVerificationAuthenticationConverter.java @@ -80,7 +80,7 @@ public final class OAuth2DeviceVerificationAuthenticationConverter implements Au Map additionalParameters = new HashMap<>(); parameters.forEach((key, value) -> { if (!key.equals(OAuth2ParameterNames.USER_CODE)) { - additionalParameters.put(key, value.size() == 1 ? value.get(0) : value.toArray(new String[0])); + additionalParameters.put(key, (value.size() == 1) ? value.get(0) : value.toArray(new String[0])); } }); diff --git a/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/web/OAuth2DeviceAuthorizationEndpointFilterTests.java b/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/web/OAuth2DeviceAuthorizationEndpointFilterTests.java index 9f7a8929..7f8a5448 100644 --- a/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/web/OAuth2DeviceAuthorizationEndpointFilterTests.java +++ b/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/web/OAuth2DeviceAuthorizationEndpointFilterTests.java @@ -195,7 +195,7 @@ public class OAuth2DeviceAuthorizationEndpointFilterTests { MockHttpServletRequest request = createRequest(); request.addParameter("custom-param-1", "custom-value-1"); - request.addParameter("custom-param-2", "custom-value-2a", "custom-value-2b"); + request.addParameter("custom-param-2", "custom-value-1", "custom-value-2"); MockHttpServletResponse response = new MockHttpServletResponse(); FilterChain filterChain = mock(FilterChain.class); this.filter.doFilter(request, response, filterChain); @@ -213,7 +213,7 @@ public class OAuth2DeviceAuthorizationEndpointFilterTests { assertThat(deviceAuthorizationRequestAuthentication.getScopes()).isEmpty(); assertThat(deviceAuthorizationRequestAuthentication.getAdditionalParameters()) .containsExactly(entry("custom-param-1", "custom-value-1"), - entry("custom-param-2", new String[] { "custom-value-2a", "custom-value-2b" })); + entry("custom-param-2", new String[] { "custom-value-1", "custom-value-2" })); // @formatter:off assertThat(deviceAuthorizationRequestAuthentication.getDetails()) .asInstanceOf(type(WebAuthenticationDetails.class)) diff --git a/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/web/OAuth2DeviceVerificationEndpointFilterTests.java b/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/web/OAuth2DeviceVerificationEndpointFilterTests.java index 61340ae6..e30069fb 100644 --- a/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/web/OAuth2DeviceVerificationEndpointFilterTests.java +++ b/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/web/OAuth2DeviceVerificationEndpointFilterTests.java @@ -187,7 +187,7 @@ public class OAuth2DeviceVerificationEndpointFilterTests { request.addParameter(OAuth2ParameterNames.STATE, STATE); request.addParameter(OAuth2ParameterNames.USER_CODE, USER_CODE); request.addParameter("custom-param-1", "custom-value-1"); - request.addParameter("custom-param-2", "custom-value-2a", "custom-value-2b"); + request.addParameter("custom-param-2", "custom-value-1", "custom-value-2"); MockHttpServletResponse response = new MockHttpServletResponse(); FilterChain filterChain = mock(FilterChain.class); this.filter.doFilter(request, response, filterChain); @@ -208,7 +208,8 @@ public class OAuth2DeviceVerificationEndpointFilterTests { assertThat(deviceAuthorizationConsentAuthentication.getUserCode()).isEqualTo(USER_CODE); assertThat(deviceAuthorizationConsentAuthentication.getScopes()).containsExactly("scope-1", "scope-2"); assertThat(deviceAuthorizationConsentAuthentication.getAdditionalParameters()) - .containsExactly(entry("custom-param-1", "custom-value-1"), entry("custom-param-2", new String[]{ "custom-value-2a", "custom-value-2b" })); + .containsExactly(entry("custom-param-1", "custom-value-1"), + entry("custom-param-2", new String[] { "custom-value-1", "custom-value-2" })); } @Test diff --git a/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceAuthorizationConsentAuthenticationConverterTests.java b/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceAuthorizationConsentAuthenticationConverterTests.java index 4b7be29c..fc87a444 100644 --- a/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceAuthorizationConsentAuthenticationConverterTests.java +++ b/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceAuthorizationConsentAuthenticationConverterTests.java @@ -246,7 +246,7 @@ public class OAuth2DeviceAuthorizationConsentAuthenticationConverterTests { request.addParameter(OAuth2ParameterNames.SCOPE, "message.read"); request.addParameter(OAuth2ParameterNames.SCOPE, "message.write"); request.addParameter("param-1", "value-1"); - request.addParameter("param-2", "value-2", "value-2b"); + request.addParameter("param-2", "value-1", "value-2"); SecurityContextImpl securityContext = new SecurityContextImpl(); securityContext.setAuthentication(new TestingAuthenticationToken("user", null)); @@ -262,7 +262,7 @@ public class OAuth2DeviceAuthorizationConsentAuthenticationConverterTests { assertThat(authentication.getScopes()).containsExactly("message.read", "message.write"); assertThat(authentication.getAdditionalParameters()) .containsExactly(entry("param-1", "value-1"), - entry("param-2", new String[]{"value-2", "value-2b"})); + entry("param-2", new String[] {"value-1", "value-2"})); } @Test diff --git a/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceAuthorizationRequestAuthenticationConverterTests.java b/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceAuthorizationRequestAuthenticationConverterTests.java index 9790d585..220331ee 100644 --- a/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceAuthorizationRequestAuthenticationConverterTests.java +++ b/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceAuthorizationRequestAuthenticationConverterTests.java @@ -95,7 +95,7 @@ public class OAuth2DeviceAuthorizationRequestAuthenticationConverterTests { request.addParameter(OAuth2ParameterNames.CLIENT_ID, CLIENT_ID); request.addParameter(OAuth2ParameterNames.SCOPE, "message.read message.write"); request.addParameter("param-1", "value-1"); - request.addParameter("param-2", "value-2", "value-2b"); + request.addParameter("param-2", "value-1", "value-2"); SecurityContextImpl securityContext = new SecurityContextImpl(); securityContext.setAuthentication(new TestingAuthenticationToken(CLIENT_ID, null)); @@ -109,7 +109,7 @@ public class OAuth2DeviceAuthorizationRequestAuthenticationConverterTests { assertThat(authentication.getScopes()).containsExactly("message.read", "message.write"); assertThat(authentication.getAdditionalParameters()) .containsExactly(entry("param-1", "value-1"), - entry("param-2", new String[]{"value-2", "value-2b"})); + entry("param-2", new String[] {"value-1", "value-2"})); } private static MockHttpServletRequest createRequest() { diff --git a/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceCodeAuthenticationConverterTests.java b/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceCodeAuthenticationConverterTests.java index 2788421b..f1a52138 100644 --- a/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceCodeAuthenticationConverterTests.java +++ b/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceCodeAuthenticationConverterTests.java @@ -102,7 +102,7 @@ public class OAuth2DeviceCodeAuthenticationConverterTests { request.addParameter(OAuth2ParameterNames.GRANT_TYPE, AuthorizationGrantType.DEVICE_CODE.getValue()); request.addParameter(OAuth2ParameterNames.DEVICE_CODE, DEVICE_CODE); request.addParameter("param-1", "value-1"); - request.addParameter("param-2", "value-2", "value-2b"); + request.addParameter("param-2", "value-1", "value-2"); SecurityContextImpl securityContext = new SecurityContextImpl(); securityContext.setAuthentication(new TestingAuthenticationToken(CLIENT_ID, null)); @@ -115,7 +115,7 @@ public class OAuth2DeviceCodeAuthenticationConverterTests { assertThat(authentication.getPrincipal()).isInstanceOf(TestingAuthenticationToken.class); assertThat(authentication.getAdditionalParameters()) .containsExactly(entry("param-1", "value-1"), - entry("param-2", new String[]{"value-2", "value-2b"})); + entry("param-2", new String[] {"value-1", "value-2"})); } private static MockHttpServletRequest createRequest() { diff --git a/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceVerificationAuthenticationConverterTests.java b/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceVerificationAuthenticationConverterTests.java index cafdac1d..843d0ee7 100644 --- a/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceVerificationAuthenticationConverterTests.java +++ b/oauth2-authorization-server/src/test/java/org/springframework/security/oauth2/server/authorization/web/authentication/OAuth2DeviceVerificationAuthenticationConverterTests.java @@ -144,7 +144,7 @@ public class OAuth2DeviceVerificationAuthenticationConverterTests { MockHttpServletRequest request = createRequest(); request.addParameter(OAuth2ParameterNames.USER_CODE, USER_CODE); request.addParameter("param-1", "value-1"); - request.addParameter("param-2", "value-2", "value-2b"); + request.addParameter("param-2", "value-1", "value-2"); SecurityContextImpl securityContext = new SecurityContextImpl(); securityContext.setAuthentication(new TestingAuthenticationToken("user", null)); @@ -157,7 +157,7 @@ public class OAuth2DeviceVerificationAuthenticationConverterTests { assertThat(authentication.getUserCode()).isEqualTo(USER_CODE); assertThat(authentication.getAdditionalParameters()) .containsExactly(entry("param-1", "value-1"), - entry("param-2", new String[]{"value-2", "value-2b"})); + entry("param-2", new String[] {"value-1", "value-2"})); } private static MockHttpServletRequest createRequest() {