From 8399bc161d5ec0b91e13fd1e271e83c5eacaf0cf Mon Sep 17 00:00:00 2001 From: Joe Grandja <10884212+jgrandja@users.noreply.github.com> Date: Wed, 10 Sep 2025 07:58:53 -0400 Subject: [PATCH] Fix Serializable tests Issue gh-17880 --- .../security/SerializationSamples.java | 171 ++++++++++++++++++ ...ation.OAuth2Authorization$Token.serialized | Bin 0 -> 1341 bytes ...thorization.OAuth2Authorization.serialized | Bin 0 -> 3923 bytes ...tion.OAuth2AuthorizationConsent.serialized | Bin 0 -> 558 bytes ...uth2AuthorizationServerMetadata.serialized | Bin 0 -> 664 bytes ...zation.OAuth2TokenIntrospection.serialized | Bin 0 -> 398 bytes ...r.authorization.OAuth2TokenType.serialized | Bin 0 -> 137 bytes ...2AccessTokenAuthenticationToken.serialized | Bin 0 -> 4630 bytes ...nCodeRequestAuthenticationToken.serialized | Bin 0 -> 2059 bytes ...ationConsentAuthenticationToken.serialized | Bin 0 -> 1453 bytes ...izationGrantAuthenticationToken.serialized | Bin 0 -> 1611 bytes ...OAuth2ClientAuthenticationToken.serialized | Bin 0 -> 3619 bytes ...ationConsentAuthenticationToken.serialized | Bin 0 -> 1716 bytes ...ationRequestAuthenticationToken.serialized | Bin 0 -> 1990 bytes ...VerificationAuthenticationToken.serialized | Bin 0 -> 1268 bytes ...ationRequestAuthenticationToken.serialized | Bin 0 -> 1753 bytes ...ntrospectionAuthenticationToken.serialized | Bin 0 -> 1629 bytes ...enRevocationAuthenticationToken.serialized | Bin 0 -> 1096 bytes ...ization.client.RegisteredClient.serialized | Bin 0 -> 2736 bytes ...ion.oidc.OidcClientRegistration.serialized | Bin 0 -> 500 bytes ....oidc.OidcProviderConfiguration.serialized | Bin 0 -> 818 bytes ...RegistrationAuthenticationToken.serialized | Bin 0 -> 1669 bytes ...n.OidcLogoutAuthenticationToken.serialized | Bin 0 -> 1786 bytes ...OidcUserInfoAuthenticationToken.serialized | Bin 0 -> 1426 bytes ...ngs.AuthorizationServerSettings.serialized | Bin 0 -> 1333 bytes ...ization.settings.ClientSettings.serialized | Bin 0 -> 500 bytes ...tion.settings.OAuth2TokenFormat.serialized | Bin 0 -> 150 bytes ...rization.settings.TokenSettings.serialized | Bin 0 -> 1145 bytes 28 files changed, 171 insertions(+) create mode 100644 config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.OAuth2Authorization$Token.serialized create mode 100644 config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.OAuth2Authorization.serialized create mode 100644 config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.OAuth2AuthorizationConsent.serialized create mode 100644 config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.OAuth2AuthorizationServerMetadata.serialized create mode 100644 config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.OAuth2TokenIntrospection.serialized create mode 100644 config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.OAuth2TokenType.serialized create mode 100644 config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.authentication.OAuth2AccessTokenAuthenticationToken.serialized create mode 100644 config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.authentication.OAuth2AuthorizationCodeRequestAuthenticationToken.serialized create mode 100644 config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.authentication.OAuth2AuthorizationConsentAuthenticationToken.serialized create mode 100644 config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.authentication.OAuth2AuthorizationGrantAuthenticationToken.serialized create mode 100644 config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.authentication.OAuth2ClientAuthenticationToken.serialized create mode 100644 config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.authentication.OAuth2DeviceAuthorizationConsentAuthenticationToken.serialized create mode 100644 config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.authentication.OAuth2DeviceAuthorizationRequestAuthenticationToken.serialized create mode 100644 config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.authentication.OAuth2DeviceVerificationAuthenticationToken.serialized create mode 100644 config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.authentication.OAuth2PushedAuthorizationRequestAuthenticationToken.serialized create mode 100644 config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.authentication.OAuth2TokenIntrospectionAuthenticationToken.serialized create mode 100644 config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.authentication.OAuth2TokenRevocationAuthenticationToken.serialized create mode 100644 config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.client.RegisteredClient.serialized create mode 100644 config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.oidc.OidcClientRegistration.serialized create mode 100644 config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.oidc.OidcProviderConfiguration.serialized create mode 100644 config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.oidc.authentication.OidcClientRegistrationAuthenticationToken.serialized create mode 100644 config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.oidc.authentication.OidcLogoutAuthenticationToken.serialized create mode 100644 config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.oidc.authentication.OidcUserInfoAuthenticationToken.serialized create mode 100644 config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.settings.AuthorizationServerSettings.serialized create mode 100644 config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.settings.ClientSettings.serialized create mode 100644 config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.settings.OAuth2TokenFormat.serialized create mode 100644 config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.settings.TokenSettings.serialized diff --git a/config/src/test/java/org/springframework/security/SerializationSamples.java b/config/src/test/java/org/springframework/security/SerializationSamples.java index 01524b2b63..f931c83bc1 100644 --- a/config/src/test/java/org/springframework/security/SerializationSamples.java +++ b/config/src/test/java/org/springframework/security/SerializationSamples.java @@ -19,6 +19,7 @@ package org.springframework.security; import java.io.IOException; import java.io.Serializable; import java.lang.reflect.Field; +import java.security.Principal; import java.time.Instant; import java.util.Collection; import java.util.Date; @@ -122,6 +123,8 @@ import org.springframework.security.oauth2.client.oidc.session.OidcSessionInform import org.springframework.security.oauth2.client.oidc.session.TestOidcSessionInformations; import org.springframework.security.oauth2.client.registration.ClientRegistration; import org.springframework.security.oauth2.client.registration.TestClientRegistrations; +import org.springframework.security.oauth2.core.AuthorizationGrantType; +import org.springframework.security.oauth2.core.ClientAuthenticationMethod; import org.springframework.security.oauth2.core.DefaultOAuth2AuthenticatedPrincipal; import org.springframework.security.oauth2.core.OAuth2AccessToken; import org.springframework.security.oauth2.core.OAuth2AuthenticatedPrincipal; @@ -156,6 +159,34 @@ import org.springframework.security.oauth2.jwt.JwtEncodingException; import org.springframework.security.oauth2.jwt.JwtException; import org.springframework.security.oauth2.jwt.JwtValidationException; import org.springframework.security.oauth2.jwt.TestJwts; +import org.springframework.security.oauth2.server.authorization.OAuth2Authorization; +import org.springframework.security.oauth2.server.authorization.OAuth2AuthorizationConsent; +import org.springframework.security.oauth2.server.authorization.OAuth2AuthorizationServerMetadata; +import org.springframework.security.oauth2.server.authorization.OAuth2TokenIntrospection; +import org.springframework.security.oauth2.server.authorization.OAuth2TokenType; +import org.springframework.security.oauth2.server.authorization.TestOAuth2Authorizations; +import org.springframework.security.oauth2.server.authorization.authentication.OAuth2AccessTokenAuthenticationToken; +import org.springframework.security.oauth2.server.authorization.authentication.OAuth2AuthorizationCodeRequestAuthenticationToken; +import org.springframework.security.oauth2.server.authorization.authentication.OAuth2AuthorizationConsentAuthenticationToken; +import org.springframework.security.oauth2.server.authorization.authentication.OAuth2AuthorizationGrantAuthenticationToken; +import org.springframework.security.oauth2.server.authorization.authentication.OAuth2ClientAuthenticationToken; +import org.springframework.security.oauth2.server.authorization.authentication.OAuth2DeviceAuthorizationConsentAuthenticationToken; +import org.springframework.security.oauth2.server.authorization.authentication.OAuth2DeviceAuthorizationRequestAuthenticationToken; +import org.springframework.security.oauth2.server.authorization.authentication.OAuth2DeviceVerificationAuthenticationToken; +import org.springframework.security.oauth2.server.authorization.authentication.OAuth2PushedAuthorizationRequestAuthenticationToken; +import org.springframework.security.oauth2.server.authorization.authentication.OAuth2TokenIntrospectionAuthenticationToken; +import org.springframework.security.oauth2.server.authorization.authentication.OAuth2TokenRevocationAuthenticationToken; +import org.springframework.security.oauth2.server.authorization.client.RegisteredClient; +import org.springframework.security.oauth2.server.authorization.client.TestRegisteredClients; +import org.springframework.security.oauth2.server.authorization.oidc.OidcClientRegistration; +import org.springframework.security.oauth2.server.authorization.oidc.OidcProviderConfiguration; +import org.springframework.security.oauth2.server.authorization.oidc.authentication.OidcClientRegistrationAuthenticationToken; +import org.springframework.security.oauth2.server.authorization.oidc.authentication.OidcLogoutAuthenticationToken; +import org.springframework.security.oauth2.server.authorization.oidc.authentication.OidcUserInfoAuthenticationToken; +import org.springframework.security.oauth2.server.authorization.settings.AuthorizationServerSettings; +import org.springframework.security.oauth2.server.authorization.settings.ClientSettings; +import org.springframework.security.oauth2.server.authorization.settings.OAuth2TokenFormat; +import org.springframework.security.oauth2.server.authorization.settings.TokenSettings; import org.springframework.security.oauth2.server.resource.BearerTokenError; import org.springframework.security.oauth2.server.resource.BearerTokenErrors; import org.springframework.security.oauth2.server.resource.InvalidBearerTokenException; @@ -374,6 +405,146 @@ final class SerializationSamples { generatorByClassName.put(DPoPAuthenticationToken.class, (r) -> applyDetails(new DPoPAuthenticationToken("token", "proof", "method", "uri"))); + // oauth2-authorization-server + RegisteredClient registeredClient = TestRegisteredClients.registeredClient().build(); + OAuth2Authorization authorization = TestOAuth2Authorizations.authorization(registeredClient).build(); + OAuth2AuthorizationRequest authorizationRequest = authorization + .getAttribute(OAuth2AuthorizationRequest.class.getName()); + Authentication principal = authorization.getAttribute(Principal.class.getName()); + generatorByClassName.put(RegisteredClient.class, (r) -> registeredClient); + generatorByClassName.put(OAuth2Authorization.class, (r) -> authorization); + generatorByClassName.put(OAuth2Authorization.Token.class, (r) -> authorization.getAccessToken()); + generatorByClassName.put(OAuth2AuthorizationConsent.class, + (r) -> OAuth2AuthorizationConsent.withId("registeredClientId", "principalName") + .scope("scope1") + .scope("scope2") + .build()); + generatorByClassName.put(OAuth2AuthorizationCodeRequestAuthenticationToken.class, (r) -> { + OAuth2AuthorizationCodeRequestAuthenticationToken authenticationToken = new OAuth2AuthorizationCodeRequestAuthenticationToken( + "authorizationUri", "clientId", principal, "redirectUri", "state", authorizationRequest.getScopes(), + authorizationRequest.getAdditionalParameters()); + authenticationToken.setDetails(details); + return authenticationToken; + }); + generatorByClassName.put(OAuth2PushedAuthorizationRequestAuthenticationToken.class, (r) -> { + OAuth2PushedAuthorizationRequestAuthenticationToken authenticationToken = new OAuth2PushedAuthorizationRequestAuthenticationToken( + "authorizationUri", "clientId", principal, "redirectUri", "state", authorizationRequest.getScopes(), + authorizationRequest.getAdditionalParameters()); + authenticationToken.setDetails(details); + return authenticationToken; + }); + generatorByClassName.put(OAuth2AuthorizationGrantAuthenticationToken.class, (r) -> { + org.springframework.security.oauth2.server.authorization.authentication.OAuth2AuthorizationCodeAuthenticationToken authenticationToken = new org.springframework.security.oauth2.server.authorization.authentication.OAuth2AuthorizationCodeAuthenticationToken( + "code", principal, "redirectUri", new HashMap<>()); + authenticationToken.setDetails(details); + return authenticationToken; + }); + generatorByClassName.put(OAuth2AuthorizationConsentAuthenticationToken.class, (r) -> { + OAuth2AuthorizationConsentAuthenticationToken authenticationToken = new OAuth2AuthorizationConsentAuthenticationToken( + "authorizationUri", "clientId", principal, "state", authorizationRequest.getScopes(), + authorizationRequest.getAdditionalParameters()); + authenticationToken.setDetails(details); + return authenticationToken; + }); + generatorByClassName.put(OAuth2DeviceAuthorizationRequestAuthenticationToken.class, (r) -> { + OAuth2DeviceAuthorizationRequestAuthenticationToken authenticationToken = new OAuth2DeviceAuthorizationRequestAuthenticationToken( + principal, "authorizationUri", authorizationRequest.getScopes(), + authorizationRequest.getAdditionalParameters()); + authenticationToken.setDetails(details); + return authenticationToken; + }); + generatorByClassName.put(OAuth2DeviceAuthorizationConsentAuthenticationToken.class, (r) -> { + OAuth2DeviceAuthorizationConsentAuthenticationToken authenticationToken = new OAuth2DeviceAuthorizationConsentAuthenticationToken( + "authorizationUri", "clientId", principal, "userCode", "state", authorizationRequest.getScopes(), + authorizationRequest.getAdditionalParameters()); + authenticationToken.setDetails(details); + return authenticationToken; + }); + generatorByClassName.put(OAuth2DeviceVerificationAuthenticationToken.class, (r) -> { + OAuth2DeviceVerificationAuthenticationToken authenticationToken = new OAuth2DeviceVerificationAuthenticationToken( + principal, "userCode", new HashMap<>()); + authenticationToken.setDetails(details); + return authenticationToken; + }); + generatorByClassName.put(OAuth2TokenIntrospectionAuthenticationToken.class, (r) -> { + OAuth2TokenIntrospectionAuthenticationToken authenticationToken = new OAuth2TokenIntrospectionAuthenticationToken( + "token", principal, "tokenTypeHint", new HashMap<>()); + authenticationToken.setDetails(details); + return authenticationToken; + }); + generatorByClassName.put(OAuth2TokenRevocationAuthenticationToken.class, (r) -> { + OAuth2TokenRevocationAuthenticationToken authenticationToken = new OAuth2TokenRevocationAuthenticationToken( + "token", principal, "tokenTypeHint"); + authenticationToken.setDetails(details); + return authenticationToken; + }); + OidcClientRegistration oidcClientRegistration = OidcClientRegistration.builder() + .grantType(AuthorizationGrantType.AUTHORIZATION_CODE.getValue()) + .scope("scope1") + .redirectUri("https://localhost/oauth2/callback") + .build(); + generatorByClassName.put(OidcClientRegistration.class, (r) -> oidcClientRegistration); + generatorByClassName.put(OidcClientRegistrationAuthenticationToken.class, (r) -> { + OidcClientRegistrationAuthenticationToken authenticationToken = new OidcClientRegistrationAuthenticationToken( + principal, oidcClientRegistration); + authenticationToken.setDetails(details); + return authenticationToken; + }); + generatorByClassName.put(OidcUserInfoAuthenticationToken.class, (r) -> { + OidcUserInfo userInfo = OidcUserInfo.builder().subject("subject").name("name").build(); + OidcUserInfoAuthenticationToken authenticationToken = new OidcUserInfoAuthenticationToken(principal, + userInfo); + authenticationToken.setDetails(details); + return authenticationToken; + }); + generatorByClassName.put(OidcLogoutAuthenticationToken.class, (r) -> { + OidcIdToken idToken = OidcIdToken.withTokenValue("tokenValue") + .issuedAt(Instant.now()) + .expiresAt(Instant.now().plusSeconds(60)) + .build(); + OidcLogoutAuthenticationToken authenticationToken = new OidcLogoutAuthenticationToken(idToken, principal, + "sessionId", "clientId", "postLogoutRedirectUri", "state"); + authenticationToken.setDetails(details); + return authenticationToken; + }); + generatorByClassName.put(OAuth2ClientAuthenticationToken.class, (r) -> { + OAuth2ClientAuthenticationToken authenticationToken = new OAuth2ClientAuthenticationToken(registeredClient, + ClientAuthenticationMethod.CLIENT_SECRET_BASIC, "credentials"); + authenticationToken.setDetails(details); + return authenticationToken; + }); + generatorByClassName.put(OAuth2TokenIntrospection.class, + (r) -> OAuth2TokenIntrospection.builder().active(true).clientId("clientId").build()); + generatorByClassName.put(OAuth2AccessTokenAuthenticationToken.class, (r) -> { + OAuth2AccessTokenAuthenticationToken authenticationToken = new OAuth2AccessTokenAuthenticationToken( + registeredClient, principal, authorization.getAccessToken().getToken()); + authenticationToken.setDetails(details); + return authenticationToken; + }); + generatorByClassName.put(OAuth2AuthorizationServerMetadata.class, + (r) -> OAuth2AuthorizationServerMetadata.builder() + .issuer("https://localhost") + .authorizationEndpoint("https://localhost/oauth2/authorize") + .tokenEndpoint("https://localhost/oauth2/token") + .responseType("code") + .build()); + generatorByClassName.put(OidcProviderConfiguration.class, + (r) -> OidcProviderConfiguration.builder() + .issuer("https://localhost") + .authorizationEndpoint("https://localhost/oauth2/authorize") + .tokenEndpoint("https://localhost/oauth2/token") + .jwkSetUrl("https://localhost/oauth2/jwks") + .responseType("code") + .subjectType("subjectType") + .idTokenSigningAlgorithm("RS256") + .build()); + generatorByClassName.put(OAuth2TokenType.class, (r) -> OAuth2TokenType.ACCESS_TOKEN); + generatorByClassName.put(OAuth2TokenFormat.class, (r) -> OAuth2TokenFormat.SELF_CONTAINED); + generatorByClassName.put(AuthorizationServerSettings.class, + (r) -> AuthorizationServerSettings.builder().build()); + generatorByClassName.put(ClientSettings.class, (r) -> ClientSettings.builder().build()); + generatorByClassName.put(TokenSettings.class, (r) -> TokenSettings.builder().build()); + // config generatorByClassName.put(AlreadyBuiltException.class, (r) -> new AlreadyBuiltException("message")); diff --git a/config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.OAuth2Authorization$Token.serialized b/config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.OAuth2Authorization$Token.serialized new file mode 100644 index 0000000000000000000000000000000000000000..e11e944c5dd6fc06d1c714b2a50b7eba2453420f GIT binary patch literal 1341 zcmbVM&ubGw6n;%enwGZyqJ_4$h*a=kcWng^M$tqYT8KX|Z4ZLtba&E>-Q8JdUec`x z$-%oIc+#ujK}E!qx8gyhcqmu}{{k-xJru!%I5XQcwN!{M?6Ujz&Ajh@-}mO(H%LhV zSGkzCWGGlLUlzoti(D*Nk~&qvaLMANij{HoEoxL)`hyF0halsDbvdX1>Bm-VWSTF~ z;Q7nSyBBkVmlBXDLdK^^T!I8)Pw^J15xa`avoDe`TZ9zqe1wxlg~Hx}!fv3jV-&W- z1-0X1)<9UfBor;|z)m6JLQ71K*0MJW8M zn{v&1v4izK*+{_YmVxKyBnoAdZT8gm07xk4NrjI_AyekbDM1g!bAZgJ_EaE|1iFI^ zld?+P9BLi=i_mF0n$?OS?2ngdy6qC`VU5k-ZQQGOvPx7uyngS^;Ni(vT>w$I*qzYz zE6bmfkh$_TGX6NY75(@bG84y@%w5EEKWfUgHcyK3`p|>b`;Y1~s)pj}SaXQ}HiON0 ze;(>9H+~Gqqv#;?Z95m5X>o(YyYD>Vhq$C*^lpfu*U6Qm8iqa$F0?Gz=IOPY@|w0- UICWOUM%J1PM4=jwJSBpP-+cqlvH$=8 literal 0 HcmV?d00001 diff --git a/config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.OAuth2Authorization.serialized b/config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.OAuth2Authorization.serialized new file mode 100644 index 0000000000000000000000000000000000000000..e948619d04f1ab4a773456c473b5c6ba5fd57867 GIT binary patch literal 3923 zcmb7HU2GIp6u!G#wp-YiTBJk~q6QkGcGhD33F}(7NTFtFYZrJRYQ3Gg?GBxt8SdO| zw$Pb03neO;sYvRNPIC7c~BD`h>05YoO^e6X3Mq?O*)ym zKj)tFo$q|-?#I886&@!Ahfiys%T0TFiqkTibNGzrF}=b~F|RqaB1&7~o6j*-hPSfpj-m z+sUad_RPCXkUYASS>#g2cPXP>%IFSfnTEsbCct>7Z=4xL-EkLtP-FrY#Z5zyF6Ed- z?dePr{I#cHrXBInO_y3D0Lejen6wl~7iZI^Cm3hOcFSb87&dA%N#V>e+rzI|)df&D zW3U~l{5N^Ex;XmSL>tLM33M5tzw%-wK-$lI=EM3uh z^~~Asmo6qqe2A>H9BK?vT{wK0w22aDUdgeHsypyB!N2re3Z9+tpAcl7wB@6xjroCr zmqW{@9ub5fO_13bfTV5%^Y4c#F=1}OsXS`8+s zX~|@!t8NT%>Iu>jEN#qY0f_PU>dk$h|N45TOlOM)BZ72>j=?oqi1wlXHy0dp*C1KA z@ZujE6-RVLtV2?4O<*O@Ih{xA)mOgV@b)=+JV9c^q{TB2v8oH1iO;p*6CxR07HBLf zzs8~Vi)Puin5-&hAleAtJf<3qSt?5ISgJg#t{}5Y1`3Tn*cP))&-G>Cu;8pD)^7NcvZk8h@l zo{xu<w~Hsio*`q5$1PP~m4^B9eqeD7}%=S1|1vX4Dj{|MbZ7o!05UfH(W07ImF@ z-Y7R1m;6Z8q>I$0i&RO?CLVWR(|Jw?mL+tpd&#ud2&|B=w~8RsAi*nUsa5d<0`Y1{ z)`aeWGLSb*Lb%?xOvdHTtO@RGx>NRhlD~ls_}Q2c(9&|awMXS}!ZdQ~t+%g7!kLp# z_&_vs^4a6(cLKU_&Oeb=DHfzWP^XqPN%fiDK0!A73zl_BkQ$3{%SL}obDNOH=OP2^ z^QU=z2BcgL>J~%@PL0qvp>;28cD(ui>qq1rB?THz4Js%)fpssP5ahAwq8UOU3+)&UCFS$h3<8ht z_7BwLNt$Vc(wN`@Gay_=O1yw-gAVjlYJYPtU%2${pTA43RH_7xyebdK!H#y>`w?2L z$oP>LUOlz`{#~B}d4a<1kW@lSXD*FokM%sE_B>l3{r+eSU?@0eIo$t_Y0V8XWt?!!FT*b}(%~^{su!dSuD3RWUp{LWu~N6FS@xD-F}RhK z3m$5DjvZJIL*kMFmEAU3+Z}N z2n?(|Jy!^;vdBxE?F%$i?U~Exi`#a=0ca{%_EsC1&-+I8&XnW&m4k;@8x&a_jDj5Olw;n`CVLW(%=gQ-TnalOvG^j literal 0 HcmV?d00001 diff --git a/config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.OAuth2AuthorizationServerMetadata.serialized b/config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.OAuth2AuthorizationServerMetadata.serialized new file mode 100644 index 0000000000000000000000000000000000000000..95812b1d25a6b719a8780822f9cd3cd219a596fb GIT binary patch literal 664 zcmbVKO=}cE5Ut&8Hh!TANc12cLOghx0TBdq$cGS&>?VicB}6v8)0IqTd#5{9HQ9-W zoFe!$auG!Q2_7Q(1-a&u`~eRhauPy%HtH%Of(_kJRqu86d(|Jmz%Uc6INFHVlgT#L zNp-R3s1q?JIT_iBoXRDA6k^&&ips!|d9B2_ELxf^Yvu7Xx7^1yQIuAqo^$~^oayBy8zp&EXf?cTg>30V7hRHgppDRuS;qk%Z z>Zm>V76>bFT_p)JFOfzH28<0j-_gS($Da?!*N%puIuF;ZQ+htgbhH3hB_-t4SzY+) z87No1cO{(Vt_jo)bB-i1mWp_O8pqZp%BGG*VEnf^wJ_7(nJg40{s7091CD<%P~fJx z4rafw?*En5M+)2xPxZk)Y{`yCZgK9tBS9T}zC93qX;j0o+<3VB>c!gIiJ|Z@e6JQH MRRn5@(^wR60ZJL|sQ>@~ literal 0 HcmV?d00001 diff --git a/config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.OAuth2TokenIntrospection.serialized b/config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.OAuth2TokenIntrospection.serialized new file mode 100644 index 0000000000000000000000000000000000000000..0aef112a7cd3685bd7daa84b6ae3048ce04e5599 GIT binary patch literal 398 zcmYL^yGjE=6o$_x=B9<(#Kyux+X;xB;w3^b5DkJhBIvj~$&Q(w*_@f(Y%Ijax3Cpb z_z)3m3kw_HLBYaCL7Yv59GJto{NFz_5ATrE2!{&WM2E;_yM;7hJ%t^jnHwQDeWGY& z{8igy%#fswLViUJSCTY$(%q5jFjjk+}egTvc00sQ}$#GMHMz7Xv!qflKe4nV!wASPDoZWW z199?;GOH3xGV}BF{2f7ZA^F*gOcprRxWmfGn}DC@5jzNlZ>oEiR5P0ci#RFEulZ literal 0 HcmV?d00001 diff --git a/config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.authentication.OAuth2AccessTokenAuthenticationToken.serialized b/config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.authentication.OAuth2AccessTokenAuthenticationToken.serialized new file mode 100644 index 0000000000000000000000000000000000000000..b71e973dab9d64932b0a979e6d9d1a0128db79f8 GIT binary patch literal 4630 zcmbtYU2GIp6u!IL(gpg*Uy(F`LO~Q}h87`_^5eF&P+9E11QM)wXKr_=o!uGk+-LaKs4Q^M4NR}YaA`bhGBA8*y_RD4@RiVP+fckk6|s#OiMd}9oSf>TPC3D0f%+d z!4^X;rEeBj`h5X2)szfV;--XK4DBp!V>bG}qT^t$o|2^L0%l^g3w#Xqm1R<9M)PGx zlP+p~0h_HkiuRUFH#bvAnHo#DjAEVny%#Qj`~HT>%wD55j3S3oP0=}G@XSi0Fq1$I z8j5nzZd(@7d7i-ODuXa=TCioY++yKOQtM8Pz>e0O69RUw=jl^<`qaWvw`nkwwheRG z#0iVUA#Q)wt!qAW^QHPQ3dK={1uG2I7hTKuaPK$W-(2CE6>Vth;&Z>P5=KM%Q8bCF zat?r6Qm_)E6i;yLxfd?4Jaqw|j-XH%s&LI?B{i;^IwR2dan&;}a!wFDag#CnZEQ|}pz=T5>>MV=ra~FP-;3Buf zv%8~g;2yE11Hwolpb@|a*)t)QG2qb>$s=Z_iPn{I8P0GIqNeL+i4kKwm@DFFf$->A zY-LG4yb#G6K@@&c?I-lrBQKt9T(j?^YT$!2UK8dwrp`@AP_*Yp&gG{XXI8I#hoT*u za|~5WkyM0vFuAV4y#iDH1py(RTKUSQm*1QkggXTFs^R3SxleYa9X0_+mffK%KZ#u2 zz>jc}?16!9iC z00ad7`)jBu;V2|3XrT_u%aspXA`?;I0Pl&SMex)_MI7ga#M=epw-&q$i~0_O6Ky3? ziE{B&aYF4k(~d>1zGziY+w!Oc!RqUdcMQeEy_>wpHi2oQ1C?9=3s721 zLYZB_#l7hKkIQewF8q7kW6ne3N{^WBsq;tXpICd@PuCB7H~&yWPkaecZTNG3fWYixcw3@! zOI{11|9a0|fwGqC&%i(-${HHKTR7_`s)bt#OxnBnVp1`!E6s31T2Pv~-2eZA z^^&amIeENs+WdXvsr_6?DC#RGD0Aw;jCrqTdo)U_P2c}H|L9#Yo`Em26nNIcqJfps zDWSRCdiTA5*qy32Ipn1a#{LBL(09(`KYSscE*L4#$6f|o#N?y+3}SCZy9PzG3L12HI3vjZ%#1br8V0$ zbcO4QVhKUHH}fM5t(wb%jx8&J^-)f^(i>Xtw_(e@Zx2CB6w_vN4kFq8;AHa&*7eu_ z9;m+k`KZ?u4~RH+i{IXSzNmlD!hSts`NJt5!JL?i9FE9B~PMjV9;9CNlb6Yn* zspy0<_`ZQpYoa9VY{pQ0bD+p6LmLA}O+y-2Tr-)$EDH?7RuaD0St>nQrg)CnE>TCu zU6@hwHe#L$a8CR!7A0LPq+9T{Ba=-Rzl4FLvai2o>o$fq1Rxf>q43EV5G$5BCYv|N zR!ABOZQ}oeY^^C}VA!T<%pm3c51#U(ZvmJv!R*DRo6}dWow+TfAW x3^5pbECAD&>{5=_a?Wr^;XhfVgsGA=!D2QbRAt2L(SR9)jF~zCsAZkc{Rh{QFmV6? literal 0 HcmV?d00001 diff --git a/config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.authentication.OAuth2AuthorizationCodeRequestAuthenticationToken.serialized b/config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.authentication.OAuth2AuthorizationCodeRequestAuthenticationToken.serialized new file mode 100644 index 0000000000000000000000000000000000000000..20e5c3470e7c960e30a87c48cf4e29ac7d5da3a2 GIT binary patch literal 2059 zcmb_dO^6&t6n@h)o0-Wv*@=;Wkwg$90kzwNfZ!@RvvGDuT6W#ZCZI&E>8|Wn($n3k zs>#geuxvoDib4`ZJPM+MAc&G%2ofZxL{!kLM?H8DFaEt(J(KQU*f9s^P}5cY-mC9@ z-+Qk={S~H^g!M?S+A5YJTsho>OQF~8i1qc_5!}o3T-vmWq`1Jeh(fdD zp%z}UU2KpkEq6@jBA+kwbA7Hfou|gfqq98x`LFLbPF-1g%7TImyK}M0QNyx}*qklc zoG~^h!G?Rn=H&dHZNSV9C0zW!5^i*rmdw-J+_in;pS|?VKl@rgd}2Y_h5MNA3*wUn zON<22Tq+GS?iqHTIejex=S3FJx=_z$xPtP)y@^r4!d0iENkX)%c!5Bs+x|J&fRYPU z($*6(3p5;=%%~Sh?&OuifYXxuLUK>zouimLlo!RQY7SeEadCjd0%IWkK;}sAc@Pj{s?pMW+Qp+M8i+E(!t!j_e|`GS(Cm0h(la zTkM`ei`iie*bI*l={AvWr>^SZm9Q82;ZWo_0iI~6XRak1 zDz(S{J6w9r{Y}`s`RX4BOwfWy3|59Qg4&ZtX-LV|Df;l@?fviFU>_8r(1wx{7dR$> zzd?!CAvxF4bzvg?1KzbWR8mi$sHl+vsk^~weFcG|2n7{M~qT8OGS5f$~Y zQI#5E-R_899PoL`Ld|``W{wj?BqxsEl8k~;!;)yri|+HUHO##aj<-#N=|GI{v*RQ? z8SYM5oDrM*-@Wzr`xkXg8x_a!*OP9a;@@NsQ;=w%#xIR*_fS}CyIgA1( z(*`3fO(bQ~XKb7Cee^QF{>{xtIl+|h^xcFv)Q^W)5;mhhv0X&5u~TuHss_%CJ;}__ zqQ{+fh=Vhv30e_K^-(NM)nL1@Q`6V-1Pl6Ol`!9$X#?`KJ6v8m^~Ti)9$NSuc|x{o qh#6p4S zE)~K+GJk1Nk{WFYxl#zJTbE3&6$GiP>L~8zDwPGj5t6MF#e{Em)K|=nx3eV;)yocK zT=*d(^jQL&7c12N^85t5`RL*s8!`?YAfCsxOTy0)%|THaDj0B<$to$<730OTBp7ob z-$q~o8N$98#EHLDoKrdr#PzzIVZa&h8f<{=Ku)LUvVd>}qYfrq>`1t{op8|=k`~(u zqr*(-ihy=-nxhJ@(xD=Xnn00+sjg~j`iT&QQYBQ9xPQ~<)6-)c{*<@JhSVkKZ?U7E z1AR>y6w{OjTVxs+oKsgziOjMdRfKVbw2CxaSw_TI6j)gNqgvsDR=ALuhDR3sn(){n zBNa{^7OGzZ!y_-g-pboxIncxLL_xkKtj3IC_Q(J2E(vq644WS=|2%A*TCP?w69q_W zf8wPiC0Wznqw61s?!PAwQ((Dq0n=A?xWMZ6x+|C_x8cxzll5f`-yZig&C%@H? zY&lk=rh`~UjlGHaGzqH+O=my9eK&Y@D+Tr>?BarWlh{N;&OlC8kzrMEFA7ebHYq@( z7ytA6JHnzhJ13rCGeA4Df>bBF%Gc6`di>|H`EcCY82;#NSAFL zN1bNYR4;9r+nibZ(SvPDYa^?2S5|spO;z#L!3S%O)dEhZB=HsXG&ge`Gt%YM4J-w3 z4y-QP`B~@8m6C}&w7o4GPKN@#Pu`CIt0le)n?rZDZa>&uu$!IPhn5{>MAYkv8+Y%$ bdU-O1sGzYMDdw9svyg^)a7M6X@%!=zGOg{u literal 0 HcmV?d00001 diff --git a/config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.authentication.OAuth2AuthorizationGrantAuthenticationToken.serialized b/config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.authentication.OAuth2AuthorizationGrantAuthenticationToken.serialized new file mode 100644 index 0000000000000000000000000000000000000000..494316ec778369326222c73f0d1b517e935a2806 GIT binary patch literal 1611 zcmcJPzfTlF6vyA~9UMObhiFJN5gRcUW;asUkO+4uKaw>NftXl`bGrjKFt@YL&T)Gb zME?PM3riAXY^kh_1%;K`+1glWfr+s(>YLf)_KuLV@`|~g-S^(S_j%uWuf9P~BtZ(f zX-A=C!RCe}RazHv+m5JLlT0;iL29ZpiF>(2rL8wYvR$H>2+WQKih0R)si;l$(lVJ9 zKGiQ$t5va0gPEHbZcH5Qk6K{4kn_+;!Kk}Mc8J4Cu<5KQoz0XBgOd78QctZ(_6YVM z6HAExW4`l}1nQK8zc{bIfBtiLU_sV}bHw+V20-{S(Zm#$k%B@}Kut03+#w-mKStVF znAoe05Nj>ESc7wdxpU0iNtipHkkskG*$RQd3m#{Pbs0%{EF@gPWcR48aA`B95a)bX zoVtS4-Y%9SC5d+$qK_}H?gjJyFe17SLv4Q4$38YmC`OUgSR1KX!8!I9X<|)z6arx! zP1@D4RNg|1sW=2w>lLjMTSK-}*XZ(EP!&GgV5H2c%OdrwFme6h>(dbnGN>?)ZxoEQ z9jk40_1FF#Ekzlb9#-na{*l!y5g_X^2u9vkCwG2(x%)>nCYkh7B_clNYbiMwCMYiMv=KWF7!wE zjG!0&8INXto!?_`VuKiYrsTm8tF5*k$ z#~!}Vf;9&NTo8W_MI_`R^s5SHSP|Th!|54Q0@VBPe?&jWn9OunK+W-_wQXxGt;y56 zDoISu1(ndVLwJq0${%gYGMQ)VdJy4>b6ro=E-8F_6$Op6sxB%l>yMK2B-E4tA?B!2GrNNAs5x? mK#`MzrzCpsF1feYi{{)*s0*_#nViN$6iS+`Iv&{Vv-vL#UojT| literal 0 HcmV?d00001 diff --git a/config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.authentication.OAuth2ClientAuthenticationToken.serialized b/config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.authentication.OAuth2ClientAuthenticationToken.serialized new file mode 100644 index 0000000000000000000000000000000000000000..c6fe23d8e59a5f44790b09365a9ae832b62ca0ae GIT binary patch literal 3619 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 CDyKUD literal 0 HcmV?d00001 diff --git a/config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.authentication.OAuth2DeviceVerificationAuthenticationToken.serialized b/config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.authentication.OAuth2DeviceVerificationAuthenticationToken.serialized new file mode 100644 index 0000000000000000000000000000000000000000..4b4b1dbfac3d7183a3671241b843c8e1a7f34a88 GIT binary patch literal 1268 zcmah}J8u&~5FTIbJP0A-p@@f|B8UQ=MOqhNCnT{rNJIjWD1i0tCf;Oyd+e=aCq)E* zfS!U92_ag30HUCv0=jhcP*4C30%rCS?wlgHIN$8d&V1iDGxzE%loA7pHmiOT8yT&x z7}gRUZPxungl!}3rmtDsHYd?G8^ZWxXd}0nl{#{kh^!1#bG}NU(_%x0;*KzKW!FK+ zS=f?Z7t!Y*e<~+yJEI;H131Armz0pH1x5(0Fo}iHV2y3Ca@$H(zQN*30E3~Dn5fPz z97~;wMXTjSOW4srL?l8PGi6~iKw9N}w90$5%Aq!*+zX5fw2|kO=Hel2gV!}Md!RO? zMn=r9HWF)CXnWH-zMo!R+>U1X5fA$A!bt9(-~kMijjCEHkoI_v_LNpigd`1u8{on+ zsW2o@e!j7W5tVKX*vbo}m`{rN+12Fy?WmZNQ%HDna@$A!g>{%Za>QGGN zmOujd>lEqPrOP9Db?!j3(-bTab28soHnd;a3L{XS4j)o4-9f>YyYc72W|O$;p!?7Vq9 z{@_C&cr$QFX~t)8h_tE0kZmHurdGTgU%BciKxYvD$LPIlp|rek^ZGP`nmJIY+`Q4+ zF5#Hr!t@H|#xyMf1t-&RXauM6X3B}wpInIq7`)g zqtV~=7iB9}V%D(83QpMEaf*lP1711t%wg)5G#T*L2*|^(|2WRt7#PkA2&1C=IUf-ymQk`E0hYl z^8tc_h)Y3K5Co~{N?a(o@&SUsK@k_?M$~ifB$=dObYU0i+?jLF`Of!!=REiftv-iy zE}zzYk27cb6emSmcKI3Ir)G&WF{`_zBnrFm%x5Uq<-z4_jtJ&D>O>vE%Wa3tlzchpSyc_aL=!G zLm%#IkT75su`DKOBlZN5JPXQw0bL>Zl3;dbjCj~&n$&ZLWSoV0h#Ams+6?I%wJPVN zl+0uvu?6fhu-VKK5i?a0Gp5UFrjdRu)XAxZ9GW7k(dL`3hf+1b%29#Qtw^k(sy324 z+>~6|L8P=^C9n~JGQhig+vc5NYq&*&n-B&5}KO!d3AjlhvjM3%6q zAk4;)dee;OPh&)H-~oDkt2C1?N!FvQ{+21H=vwR)BYB$|%ojhpdUihkbS14xzFTa3 zBOqN@R>nwc?f84TsLa|vSa^N>`$m;CW=aOz0}nxUM_IC*lUbQPIRAFT&6nhM9Acx; z;~YTH)KhKQt`(!kucD+4PHZ!QrPqn-|2ynf@!;_f&`dF5pYI9*XNhM?5? z*@*&%+XmkZ9vC}1Hjb%M${%vc>p9A=AG`2${pOKJm;lqHuqMDI^6Gutg~jc`Zy*m^ AiU0rr literal 0 HcmV?d00001 diff --git a/config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.authentication.OAuth2TokenIntrospectionAuthenticationToken.serialized b/config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.authentication.OAuth2TokenIntrospectionAuthenticationToken.serialized new file mode 100644 index 0000000000000000000000000000000000000000..ddd7bc631316f615e8d7476e14be6aecc85e843d GIT binary patch literal 1629 zcmah}&ubGw6rSBQjkUCmRxAF*gB1_5i^W?+O{#4Jt5I7Kil~#_X*2C)XPuoSn^H zFx?$L76VK|A$M`>@T3z zx3_*C(V&K_6zq)xAT^wzOOT#~%!2@;0dY6ta&@DBZ6^kVM=iF)HW*|rCq zMw4=q;yX2lo3Zh9?XUciDa2}26{exp*p(cg!eIqM)0xk&UXR>)pF-vY+Q~TfCZLJ9 zD55@D0frUMyeK$#UYCFxJK#U7-XkD0(N&rjOjQeK}tu;r^ z)-=OjR}ZI6o7Mj?WZjpT?NEP_crD9MuV22IW$VA;>?~Y=*M;6I36BU}#om_JhW6S7 tDGVqRdV1gh5Xa}vHW4x*5nmDoRDdYZop9^Q=EI3}l2KxWL;+ggO`J{Ex5wVvKBtJ_ z1)!#Y2S5}wJVOdPcnzp1XegN36P%sGxHx%sW@mo$pV^N;pphHMv>63?W@I|rGh&Q0 zZ4QGRbqP+iS$JWj_t zk$X}M6-F|*zc+5){rvs)rVm~Obwwu@HW$irOq;sD^Z#^JnX6rR`Q_QK>n^Dmvx4;^ zBdCj2mX0xE&e@AsU$4DA5$|f?Z9_emM_6P)zgeBX1z$c#SGQKmKf~ea^?HKCW%ciu znsHVDU-{tEs11&_#ZHnK%yT#D2+rp8pM>5{%GqZY&XjR>!ADFFS28V(mbZUE6Q%uH zW^x-*5`pK4nz6xzH%TbR(;yyxY;N0`r{N^2dCt4$zD;h(>E#nucO@0S2PYM8**w^l z<4j@Ch}2@jZ0@)uVvTq!j8<4FvD1$pJny)=mq{3Bb{*5DjFhTi?Y~#H{Gk2-!Qy#4 literal 0 HcmV?d00001 diff --git a/config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.client.RegisteredClient.serialized b/config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.client.RegisteredClient.serialized new file mode 100644 index 0000000000000000000000000000000000000000..7d6fc47dfbb5244a548520325d3f4b5d193cd36c GIT binary patch literal 2736 zcmb_e-)me&7@gf1leXCyTZ}(Kqiv#9+Iz1_Z9xmxBsMmXLl#Ld*^26 zyUC4U$%8&CLKV>$9|RwKQbg&C6d#KZl^Ue@C#cYZ^%siY%CdE7N%Fjq6<5WQN0qXqHMSz;qN|vnNDiy6pb1n*@w;4R($!ytF*s2q z0~T-$4?$e+n^Vp(JTg#AfkTfDCZqZoBX~ys(DO7fFvDDKTF%sE^&%ICd(Hxnye0Om-AWZ#D^lhvSW=izubn zBBhr}=~*f9yOz>x(gg=Ch&N#*L_G{963z3VPNqK=3W}m45}0NIQt@F{@=Tc?)W3D? zcI6Ayx~^RT#3G9_Xdo~A4|Hc5Ay1?+`sqPkR#%tRoe*J&EYT}!cs8nufR{O)4;gY; z+yBnxw?0^#%@dMJa^&WFHnHv7dDJ-fJiAT10+yP&F7w>eL@|dHC)%cH&9qfN?L>2*_4OPY7dv5Yo+|FA zkhPvOf)olyRozla4f!7LLRQ|=6n+inqDd+p;-{()b+#;wn5TC4j_hqZVbmv(ktz4%T4 ztCu@Sev<4C1q~*Vn~+mv7gV+7L>Q!T-R2!D-B_60@IMdaKt?r7bIFzx%n>J+LX@3F zwuY{bo}rj?vL;NJ=1gj>qYHrt>d84@ql>_)$843>fML+?glcnQ6LjSu4IW~ zPCb|$8%$>RLrDB+%i{FdqmMg2lYlvnZ)fJrizEsh>ibNo`esv8ActGF^1#kJidP~E z2|A3170gel*3PvVy9+`wcVR`jr3_;%gTTv~zrCn~B)uk{j9*VhNv&}bW4Lp=G+n!-;S*h|Ad ztzWtN#r3V;GQEn0W!+&wdBpIC(jzT2n~J^DMSHbp^hNRKpUpGZnx?gx1C*)_y$-d& O1ZY5SBin(F8-X?yb2so7;1CVlEce{t>~# ze_#{w7ufm(>?|y-1aU7a!G#@oGw;3Gow0Z0@e%@vbPLoiV| zXP3-vkyP$J3pb+B_Fsx~PMmXcS}DO}Z?kwDG_@zsBs*2Ya^G+7zUX6UyJwhaUcfaZ zdh)rxydZ;y@OGH-tzfNNJegG8Pb(rCX{4vwL+={J^qwpl!5moJW%zxH`PZXMU*HxM` Sx-ebJ1+qWdigwx*Mgj8a=Xe>b&P zm3NPK%K({$_J9Af*>-4Ih|SHsl05vapjA}W5Xd+~_IkH*PJR5gUxrd0Wv0z!CVkCiN3ymOg#G#U{cqf_-YgQ9`p@Ad zlneUGm|mAjPw-pJ#YDKgclYUn+WSR>CosptP&n7LWDFUwIOZInE7h-`J}+;7nS$~b zoK%|eEt0A2Z8(9k6)x6_XXg41$k+UEmf`~KD#DC(E)^DGF-A1*n(r$eG8Jow2+I>q z3Pi$C9n qL-gDM>H+;oq&3Ndkwhn>gl0ZqDhdWnr4#i`q^R6)tzWsCW$*_yDIygB literal 0 HcmV?d00001 diff --git a/config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.oidc.authentication.OidcClientRegistrationAuthenticationToken.serialized b/config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.oidc.authentication.OidcClientRegistrationAuthenticationToken.serialized new file mode 100644 index 0000000000000000000000000000000000000000..280e98ce65b1a4e5b1fb8dcc3f2097cc5ec55482 GIT binary patch literal 1669 zcmah~O-vI(6n<@?fPf$xj0u`()Iegok$94W78IyiY$7O;h-ErEwjb#|bO2Y(JG zp1gbTVq&7kt0ylS4<0A{2XpfSFgrEW`1ZPMM&oA>j*@BQ@ISLh5CtV>nN zg@NLJ<%%LTR+nlu7c#o0xZcP~vZkx!cvkC7<;+1Uew}D8{hZ_;wIb$gPGeaSWmAHq z-PW|J@~F_DsU9x0iqHvrbd=8r*=+C_qp<6EAtC$cFJA-G0CK{u}Zj z1E~UZg#0>-0>Dqb!#pEn+>fTSZRxMG^46|hWaU=&PsN-WuK;P0hO`U)iq)iMdCyZU z3{5Pgp(n)ONOZxof+*0CjrDZX9SWBgPA$$YBDjUN;Ql*r|L)qQ`pEK&&j-$07PC|k zUc-V9G!wh2kRX`BG53ecmgNN-gN zFA7eawESo5-S{@&jE3HdBEBx^jQ|5E*p;}B;g~k*8=GG~vvT)9274l~y^+H1-yD~C zd6lU2Sfp_SQi+~Sej^Rdtd$+bTP(T96%I-Xw_#lKzgqjNS_k2A#}SeeQI(-?tQrhQq7_B?U`H;9Su?UCP_I SW7z!mIB7AB1~?+ghW!I@%sz_% literal 0 HcmV?d00001 diff --git a/config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.oidc.authentication.OidcLogoutAuthenticationToken.serialized b/config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.oidc.authentication.OidcLogoutAuthenticationToken.serialized new file mode 100644 index 0000000000000000000000000000000000000000..9abd2a55fbc55f570f01ee62e7a9393bf13dfc53 GIT binary patch literal 1786 zcma)7O^6&t6t3yn-^4K+6IbJ+2Qiw1bjL*ySwUyj-5qEh*i8%se^S#`*{R){uD0q; zrZ=p1^cs_VV?)%Shx z&Hk@!+F7<^>~`oftJ3X@miOeq*xk^{q;D1Mg@*T`yNqjlN!pMW#;VI4lu1LQMB=w( z3Mwh~+PD{+ZPSM)o-JRTF}pH-=KbI9e5&>@1Z*~DbBR{?z9oR&7w_;(JkmVfj<$f1 zti)_q2_FP(B}RzR0f^BEVpKqk5@TgVkRrm+DuOZ3;bEQ)mBQQX3aiEJ{>(TiP;N@0 ztW4mnRl}F_L`9-9u7NF2uIx*W-xCYYJLw$q(-Oms(+)UDzsN0HpU5{cT(TB6I}R*Q z{)x;VK0kFOT^IKTtbU#~DsfWarD=^yfszi`V!>}8l#X6BTH}2YA8{-saHa7`Rf2YB z2T!czSq<&+I7t&yXjq22$IhlbBh*F3J6gud!JQ)~pZfBb4;BLAcS_?9u!TxlIva8>|`R5}(X)PfJr}GR!9V@dmt>t@^J%8u>hd=s;e_Us^7MpVFvdlAv zpTQJ8a|&)?=*C3)2eNa}(dT4mT;i7s&L}Hmfeu&@vxb#D1F|WEMe&EaA233m0h=k# zLB%9cb^^kCb|SoCHiUzOnj3jvOf0r1!uT2Cj z`)(|6T}P)Q#n?TriDDls3W4g$sFkAQQ$T~wDd+l9G=1kS#_SN#9C(fE{;(fN&4yQ# zBEv0dKYZieua+L&_~ITEEgLifs@T1LSpYXMe#Tv#W)>dL-I$@2&^R@K~k0QfzS7#ek=;z54oszIGb}&SQrq2}<3z zLRuvCXc;p+Jw5x=^{*E%d{<||8at#77i-wa#v90svAd& zhpQ`!v{*-~bvI@~TXDVVO48QNXk&H=}VK~pr~5fK`ueWc;-qv8Fd;RRALuRGt24+HJJN*XTq z#;0whX$);I&vPbGFxOKB(|6X1TWQ2vkwAA7vJHNEacVo9qX!)*F2hI;$EXj(W{vu3 z&SDMY{udWIX2MRuv1ny`U%at`Tru#GhPnVTBUWEs5@BBPrlNN&e zunnaoLQ+SvEET25rpcZ>{5bLC4S8CGLJdkW-(pDw`0JF+H!!{I5S_(-38u?1e;SN)QlQ#b~|NcG&3$yQm{;kn|1%%-HNR{j>6bw)p9x-p;FlhBb5t1 zsqDQZmXR4jH$Q@16#4@}cnj}qG-uW8Btq|FmC4LynJ2rgkFnpMJ^!PBl&h&pTc)82 z3qO{@eIBkeI#1#z0?zH+xIHFzej#8P2Q>)L6?H|K!tpqiVfLc?%Aa>%kKg-H1ZNh8 zgd}tp-vg;?FsPeowx$#`i7s8XeHA+c_-_pFXeh?*hK4eJ%{Xf)h4|(gdQ%Df1$xcq A-T(jq literal 0 HcmV?d00001 diff --git a/config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.settings.AuthorizationServerSettings.serialized b/config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.settings.AuthorizationServerSettings.serialized new file mode 100644 index 0000000000000000000000000000000000000000..9eebc9c061b5549a328927c446156429ecb33011 GIT binary patch literal 1333 zcmb`HL2J}N6vtmzmUeBmtOqIRp@;3wBv90XJ=C^P6zaw5MG&1PZ?n^#oypF;?4};X z58_qm!OtLwNAci65WjAr6;Of{!tU$K;W>vpV1sQrAPG=Id1D`|~Hc9!wCtLB3u^kCv!d-3|t$?;;R z0g!39{U6pkG^ANbZh_eEy#L-Ber>?qJ}kJD2$uJc*oXxwaS_~N$!3<=y{_dpKeze2 zN(c<|eVEQ&IZzSra&{=t#(sWw@`Jw2?-a1F|zV5^(mN) z{T-zQGWljzKY91`+b1jKd(a#)kz$qr!Djs$lb+8Obt=M(u9%ai&%_Z-FNPV1llIZL zZ-1*bSaLk;G6Wm-$(4H6I8wi<@vH;o-o8B=f6;b{vIk2mla#kXrN`$SZ5ojM1cj>h Aw*UYD literal 0 HcmV?d00001 diff --git a/config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.settings.ClientSettings.serialized b/config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.settings.ClientSettings.serialized new file mode 100644 index 0000000000000000000000000000000000000000..599a08245f688c6a982c500e62a39a0d0297cb5d GIT binary patch literal 500 zcmbtRJxc>Y5S?5M`Dnz(#zrAlk`35es0jqc2%^|nxw&laRyQ}7*}dcRwcjp)5+gE9DYEV$fn>FhVX&LgyC!u{*%{ZK2 zfaIimIs1;->lm0CT4nCw!x)K9BuSJ)LTr_GMc?}U9H@BUu?nIRJh+^s!|UVM2kUJM bGF`4B5r<%)^q1VPEtOmw*KQ|?RER$SW)!t^ literal 0 HcmV?d00001 diff --git a/config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.settings.OAuth2TokenFormat.serialized b/config/src/test/resources/serialized/7.0.x/org.springframework.security.oauth2.server.authorization.settings.OAuth2TokenFormat.serialized new file mode 100644 index 0000000000000000000000000000000000000000..111937459e38e9beb68c5f5d6ed0dba762c73198 GIT binary patch literal 150 zcmZ4UmVvdnh#@$?C|$3(peQphJ*_A)H?=&!C|j>MHMz7Xv!qflKe4nV!wASPDoZWW z199?;GOH3xGV}9*f+ZzDUB!C-jvz%L`Pr#?Zuv#Ii6y61-dwwKYwIT_21XwS*0RK$ s($o?LA)lHj+lI;Khs7h>Gq+Diy>-O~p{5Qs~x;AUN5bY$n;=+0ML8Ru9F4 ze?h!>6+Cznym%4uC>{hADgFc%Ea*W|oY{5TCWjK}!tOF}=6&z`zIpHIS12h7%R+iY zMUsbJThf3HgzOQ;oLF+aLj;YnGppCK&m=JmA^Ba3T!cD^sIwGV6+IT(|5u+M{#mVT zzU&nN5(z7NM{l$gO6p)*!tK64CnRl5-e!sTsFTRzigzdwHR7k^AFq>zPR4c4KUrXSi)U!`10M!grHs{xX=SGMLoggZiCBIG$4_X#66Q#fn*ywM~|l z#*}89mGo)okp&@qM#Hzq7%etpyIZbGR~{g@?D0pa`zU@~{^qUA7&T9`wTSuGKV zu0MeMmyMlZUBdi0_t+JRk?uedJI83`5XKGj zOs8E@O>IpzUJc_Q+sZa0gwl#VJ9h!$)Ck3$LM-F~(~K>j_nCHWDn&FwVl(;R*8LYp zXBMATbhT(ORmchy&YFLMFtZzQTgZT-hP20#y!&7*H_Y^;5hCRwa}iFD&>m`?VMEL