From bbe4f876410ed47099516213b7e5b8a50f3c8d52 Mon Sep 17 00:00:00 2001 From: Josh Cummings <3627351+jzheaux@users.noreply.github.com> Date: Fri, 17 Jan 2025 16:08:15 -0700 Subject: [PATCH] Mark Serialization Support for Events Issue gh-16276 --- ...gSecurityCoreVersionSerializableTests.java | 62 +++++++++++++++++- ...ationFailureBadCredentialsEvent.serialized | Bin 0 -> 11264 bytes ...nFailureCredentialsExpiredEvent.serialized | Bin 0 -> 11353 bytes ...henticationFailureDisabledEvent.serialized | Bin 0 -> 11333 bytes ...thenticationFailureExpiredEvent.serialized | Bin 0 -> 11338 bytes ...uthenticationFailureLockedEvent.serialized | Bin 0 -> 11329 bytes ...ionFailureProviderNotFoundEvent.serialized | Bin 0 -> 11268 bytes ...ationFailureProxyUntrustedEvent.serialized | Bin 0 -> 11271 bytes ...ionFailureServiceExceptionEvent.serialized | Bin 0 -> 11273 bytes ...vent.AuthenticationSuccessEvent.serialized | Bin 0 -> 304 bytes ...ctiveAuthenticationSuccessEvent.serialized | Bin 0 -> 414 bytes ...cation.event.LogoutSuccessEvent.serialized | Bin 0 -> 296 bytes ...t.JaasAuthenticationFailedEvent.serialized | Bin 0 -> 10968 bytes ....JaasAuthenticationSuccessEvent.serialized | Bin 0 -> 314 bytes ...re.session.AbstractSessionEvent.serialized | Bin 0 -> 198 bytes ....SessionFixationProtectionEvent.serialized | Bin 0 -> 382 bytes ...r.AuthenticationSwitchUserEvent.serialized | Bin 0 -> 1016 bytes ...session.HttpSessionCreatedEvent.serialized | Bin 0 -> 354 bytes ...uthenticationCredentialsNotFoundEvent.java | 1 + .../event/AuthorizationFailureEvent.java | 1 + .../access/event/AuthorizedEvent.java | 1 + .../access/event/PublicInvocationEvent.java | 1 + ...henticationFailureBadCredentialsEvent.java | 5 ++ ...icationFailureCredentialsExpiredEvent.java | 5 ++ .../AuthenticationFailureDisabledEvent.java | 5 ++ .../AuthenticationFailureExpiredEvent.java | 5 ++ .../AuthenticationFailureLockedEvent.java | 5 ++ ...nticationFailureProviderNotFoundEvent.java | 5 ++ ...henticationFailureProxyUntrustedEvent.java | 5 ++ ...nticationFailureServiceExceptionEvent.java | 5 ++ .../event/AuthenticationSuccessEvent.java | 5 ++ ...InteractiveAuthenticationSuccessEvent.java | 5 ++ .../event/LogoutSuccessEvent.java | 7 +- .../event/JaasAuthenticationFailedEvent.java | 5 ++ .../event/JaasAuthenticationSuccessEvent.java | 5 ++ .../event/AuthorizationDeniedEvent.java | 3 +- .../event/AuthorizationEvent.java | 7 +- .../event/AuthorizationGrantedEvent.java | 7 +- .../context/SecurityContextChangedEvent.java | 3 +- .../core/session/AbstractSessionEvent.java | 7 +- .../SessionFixationProtectionEvent.java | 7 +- .../AuthenticationSwitchUserEvent.java | 5 ++ .../web/session/HttpSessionCreatedEvent.java | 1 + .../session/HttpSessionDestroyedEvent.java | 1 + .../session/HttpSessionIdChangedEvent.java | 8 ++- .../SessionInformationExpiredEvent.java | 3 +- 46 files changed, 175 insertions(+), 10 deletions(-) create mode 100644 config/src/test/resources/serialized/6.4.x/org.springframework.security.authentication.event.AuthenticationFailureBadCredentialsEvent.serialized create mode 100644 config/src/test/resources/serialized/6.4.x/org.springframework.security.authentication.event.AuthenticationFailureCredentialsExpiredEvent.serialized create mode 100644 config/src/test/resources/serialized/6.4.x/org.springframework.security.authentication.event.AuthenticationFailureDisabledEvent.serialized create mode 100644 config/src/test/resources/serialized/6.4.x/org.springframework.security.authentication.event.AuthenticationFailureExpiredEvent.serialized create mode 100644 config/src/test/resources/serialized/6.4.x/org.springframework.security.authentication.event.AuthenticationFailureLockedEvent.serialized create mode 100644 config/src/test/resources/serialized/6.4.x/org.springframework.security.authentication.event.AuthenticationFailureProviderNotFoundEvent.serialized create mode 100644 config/src/test/resources/serialized/6.4.x/org.springframework.security.authentication.event.AuthenticationFailureProxyUntrustedEvent.serialized create mode 100644 config/src/test/resources/serialized/6.4.x/org.springframework.security.authentication.event.AuthenticationFailureServiceExceptionEvent.serialized create mode 100644 config/src/test/resources/serialized/6.4.x/org.springframework.security.authentication.event.AuthenticationSuccessEvent.serialized create mode 100644 config/src/test/resources/serialized/6.4.x/org.springframework.security.authentication.event.InteractiveAuthenticationSuccessEvent.serialized create mode 100644 config/src/test/resources/serialized/6.4.x/org.springframework.security.authentication.event.LogoutSuccessEvent.serialized create mode 100644 config/src/test/resources/serialized/6.4.x/org.springframework.security.authentication.jaas.event.JaasAuthenticationFailedEvent.serialized create mode 100644 config/src/test/resources/serialized/6.4.x/org.springframework.security.authentication.jaas.event.JaasAuthenticationSuccessEvent.serialized create mode 100644 config/src/test/resources/serialized/6.4.x/org.springframework.security.core.session.AbstractSessionEvent.serialized create mode 100644 config/src/test/resources/serialized/6.4.x/org.springframework.security.web.authentication.session.SessionFixationProtectionEvent.serialized create mode 100644 config/src/test/resources/serialized/6.4.x/org.springframework.security.web.authentication.switchuser.AuthenticationSwitchUserEvent.serialized create mode 100644 config/src/test/resources/serialized/6.4.x/org.springframework.security.web.session.HttpSessionCreatedEvent.serialized diff --git a/config/src/test/java/org/springframework/security/SpringSecurityCoreVersionSerializableTests.java b/config/src/test/java/org/springframework/security/SpringSecurityCoreVersionSerializableTests.java index 407a055d42..359a7d4880 100644 --- a/config/src/test/java/org/springframework/security/SpringSecurityCoreVersionSerializableTests.java +++ b/config/src/test/java/org/springframework/security/SpringSecurityCoreVersionSerializableTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2024 the original author or authors. + * Copyright 2002-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. @@ -54,6 +54,7 @@ import org.junit.jupiter.params.provider.MethodSource; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider; import org.springframework.core.type.filter.AssignableTypeFilter; +import org.springframework.mock.web.MockHttpSession; import org.springframework.security.access.AccessDeniedException; import org.springframework.security.access.AuthorizationServiceException; import org.springframework.security.access.intercept.RunAsUserToken; @@ -73,16 +74,33 @@ import org.springframework.security.authentication.RememberMeAuthenticationToken import org.springframework.security.authentication.TestAuthentication; import org.springframework.security.authentication.TestingAuthenticationToken; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; +import org.springframework.security.authentication.event.AuthenticationFailureBadCredentialsEvent; +import org.springframework.security.authentication.event.AuthenticationFailureCredentialsExpiredEvent; +import org.springframework.security.authentication.event.AuthenticationFailureDisabledEvent; +import org.springframework.security.authentication.event.AuthenticationFailureExpiredEvent; +import org.springframework.security.authentication.event.AuthenticationFailureLockedEvent; +import org.springframework.security.authentication.event.AuthenticationFailureProviderNotFoundEvent; +import org.springframework.security.authentication.event.AuthenticationFailureProxyUntrustedEvent; +import org.springframework.security.authentication.event.AuthenticationFailureServiceExceptionEvent; +import org.springframework.security.authentication.event.AuthenticationSuccessEvent; +import org.springframework.security.authentication.event.InteractiveAuthenticationSuccessEvent; +import org.springframework.security.authentication.event.LogoutSuccessEvent; import org.springframework.security.authentication.jaas.JaasAuthenticationToken; +import org.springframework.security.authentication.jaas.event.JaasAuthenticationFailedEvent; +import org.springframework.security.authentication.jaas.event.JaasAuthenticationSuccessEvent; import org.springframework.security.authentication.ott.InvalidOneTimeTokenException; import org.springframework.security.authentication.ott.OneTimeTokenAuthenticationToken; import org.springframework.security.authentication.password.CompromisedPasswordException; import org.springframework.security.cas.authentication.CasAssertionAuthenticationToken; import org.springframework.security.cas.authentication.CasAuthenticationToken; import org.springframework.security.cas.authentication.CasServiceTicketAuthenticationToken; +import org.springframework.security.core.Authentication; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.SpringSecurityCoreVersion; import org.springframework.security.core.authority.AuthorityUtils; +import org.springframework.security.core.context.SecurityContext; +import org.springframework.security.core.context.SecurityContextImpl; +import org.springframework.security.core.session.AbstractSessionEvent; import org.springframework.security.core.session.ReactiveSessionInformation; import org.springframework.security.core.session.SessionInformation; import org.springframework.security.core.userdetails.UserDetails; @@ -163,6 +181,8 @@ import org.springframework.security.web.authentication.rememberme.CookieTheftExc import org.springframework.security.web.authentication.rememberme.InvalidCookieException; import org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationException; import org.springframework.security.web.authentication.session.SessionAuthenticationException; +import org.springframework.security.web.authentication.session.SessionFixationProtectionEvent; +import org.springframework.security.web.authentication.switchuser.AuthenticationSwitchUserEvent; import org.springframework.security.web.authentication.www.NonceExpiredException; import org.springframework.security.web.csrf.CsrfException; import org.springframework.security.web.csrf.DefaultCsrfToken; @@ -170,6 +190,7 @@ import org.springframework.security.web.csrf.InvalidCsrfTokenException; import org.springframework.security.web.csrf.MissingCsrfTokenException; import org.springframework.security.web.firewall.RequestRejectedException; import org.springframework.security.web.server.firewall.ServerExchangeRejectedException; +import org.springframework.security.web.session.HttpSessionCreatedEvent; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.fail; @@ -200,6 +221,8 @@ class SpringSecurityCoreVersionSerializableTests { static { UserDetails user = TestAuthentication.user(); + Authentication authentication = TestAuthentication.authenticated(user); + SecurityContext securityContext = new SecurityContextImpl(authentication); // oauth2-core generatorByClassName.put(DefaultOAuth2User.class, (r) -> TestOAuth2Users.create()); @@ -375,6 +398,37 @@ class SpringSecurityCoreVersionSerializableTests { (r) -> new UsernameNotFoundException("error", new RuntimeException())); generatorByClassName.put(TestingAuthenticationToken.class, (r) -> applyDetails(new TestingAuthenticationToken("username", "password"))); + generatorByClassName.put(AuthenticationFailureBadCredentialsEvent.class, + (r) -> new AuthenticationFailureBadCredentialsEvent(authentication, + new BadCredentialsException("message"))); + generatorByClassName.put(AuthenticationFailureCredentialsExpiredEvent.class, + (r) -> new AuthenticationFailureCredentialsExpiredEvent(authentication, + new CredentialsExpiredException("message"))); + generatorByClassName.put(AuthenticationFailureDisabledEvent.class, + (r) -> new AuthenticationFailureDisabledEvent(authentication, new DisabledException("message"))); + generatorByClassName.put(AuthenticationFailureExpiredEvent.class, + (r) -> new AuthenticationFailureExpiredEvent(authentication, new AccountExpiredException("message"))); + generatorByClassName.put(AuthenticationFailureLockedEvent.class, + (r) -> new AuthenticationFailureLockedEvent(authentication, new LockedException("message"))); + generatorByClassName.put(AuthenticationFailureProviderNotFoundEvent.class, + (r) -> new AuthenticationFailureProviderNotFoundEvent(authentication, + new ProviderNotFoundException("message"))); + generatorByClassName.put(AuthenticationFailureProxyUntrustedEvent.class, + (r) -> new AuthenticationFailureProxyUntrustedEvent(authentication, + new AuthenticationServiceException("message"))); + generatorByClassName.put(AuthenticationFailureServiceExceptionEvent.class, + (r) -> new AuthenticationFailureServiceExceptionEvent(authentication, + new AuthenticationServiceException("message"))); + generatorByClassName.put(AuthenticationSuccessEvent.class, + (r) -> new AuthenticationSuccessEvent(authentication)); + generatorByClassName.put(InteractiveAuthenticationSuccessEvent.class, + (r) -> new InteractiveAuthenticationSuccessEvent(authentication, Authentication.class)); + generatorByClassName.put(LogoutSuccessEvent.class, (r) -> new LogoutSuccessEvent(authentication)); + generatorByClassName.put(JaasAuthenticationFailedEvent.class, + (r) -> new JaasAuthenticationFailedEvent(authentication, new RuntimeException("message"))); + generatorByClassName.put(JaasAuthenticationSuccessEvent.class, + (r) -> new JaasAuthenticationSuccessEvent(authentication)); + generatorByClassName.put(AbstractSessionEvent.class, (r) -> new AbstractSessionEvent(securityContext)); // cas generatorByClassName.put(CasServiceTicketAuthenticationToken.class, (r) -> { @@ -448,6 +502,12 @@ class SpringSecurityCoreVersionSerializableTests { generatorByClassName.put(RequestRejectedException.class, (r) -> new RequestRejectedException("message")); generatorByClassName.put(ServerExchangeRejectedException.class, (r) -> new ServerExchangeRejectedException("message")); + generatorByClassName.put(SessionFixationProtectionEvent.class, + (r) -> new SessionFixationProtectionEvent(authentication, "old", "new")); + generatorByClassName.put(AuthenticationSwitchUserEvent.class, + (r) -> new AuthenticationSwitchUserEvent(authentication, user)); + generatorByClassName.put(HttpSessionCreatedEvent.class, + (r) -> new HttpSessionCreatedEvent(new MockHttpSession())); } @ParameterizedTest diff --git a/config/src/test/resources/serialized/6.4.x/org.springframework.security.authentication.event.AuthenticationFailureBadCredentialsEvent.serialized b/config/src/test/resources/serialized/6.4.x/org.springframework.security.authentication.event.AuthenticationFailureBadCredentialsEvent.serialized new file mode 100644 index 0000000000000000000000000000000000000000..979b2e937adc5956bbaa1329de3221a146856e87 GIT binary patch literal 11264 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 literal 0 HcmV?d00001 diff --git a/config/src/test/resources/serialized/6.4.x/org.springframework.security.authentication.event.AuthenticationFailureCredentialsExpiredEvent.serialized b/config/src/test/resources/serialized/6.4.x/org.springframework.security.authentication.event.AuthenticationFailureCredentialsExpiredEvent.serialized new file mode 100644 index 0000000000000000000000000000000000000000..e4afece24aad97f864f0acb7498197e5eb294865 GIT binary patch literal 11353 zcmeHNYiu3G6`tz^#||WfG!H`pA>ooh18XOtd0^*Z{Kx~_No^-BkOr;yj<46*ySwbp zb*@n#L4=kfrKJ?5s4A$HDri-ZP@4+cqN+#)^`WXQQYuvys8p(uTA}{vuT~25oSE6# z*~h)UhNypve~kCeo;l~tcg~zMb7r4^ms}AB%k`6?)1GP8uP#s)5aB z4YSIosLO22WVYuTbOwGHy@}32({`!>?F(oLDNQFFsQEVh8bIQ6PhH&k=pU^mEriqp zGX4RCO@u5kEtV^ki@4*}-M59mers(DDGZTzTC=E+$}-YD1mZeVbL))e)@gYG?M$*A zhz56qvcs24S+3=;ZhY?28>e^wTL5ue9&ZbjrZvFV_Z^8iA3Aa7ANN1H|F>_$1P_sR zW>;v)%!&^xuADY!Ory$d$KaHQC#I>zhR(K+bW}d~Jrv~=Qh0J^hhBXB6PtFOdiggC$ig9Vg=JPl%E-zgP=${^lbsr0p)!I_U)!lN}_B9owZN)yf17hRD^HV}{|7XO?I%0$~PqS~^6QmMFZy z`S;;_+1oa0J5-}uT%l~rD%qFO#gsXaGUYeh_Uw4l55Z?rfgeK-j=4j#-%~nMJTL1k>X79lp;eyAm`ccc8Yb z8QF=BZ@WO_TDAvIj0Udh7-j0xz+_%vRP4|)_D4VaDJ%x;XJmD@Q%Y`=qp2?Okd(Nm zj>IX`EjfUsaWtgC82FiE(~=T#B=9V7C6s$pV*;tea&UPydX$D$hw0jEm)i7vAZ-o^ zT^U)QtBZUsHE9P;vI;yb71&ru0j2w(X@LVXvLe;Pxg(Pe`n>MtY_Yion_C&VrYvkn zN4yd}W;#{fDlLz5dPeH0aWHa?0k;fG3)D#U$Vo1Vq@*Q~SCmG#O{M1=M6zi$dt+qSkom5T<@tywu#UP(pz?d^o}_5L{ks~8M#tC#Ox3!9^CF$;kD&`4kJWu zG}(03wVB~NCc`vkSYD;#xuMuXjS7IkTaH5ZggCz<)g!&?DuI%a9bt}vyhlpf7E7A0 z`Zk1dgYqS7&>AEdzLgfE4+7p|Zw-5gbe9yj$j5j~OS+^eVvRN-DVD((8Sc5fpl`~w z-68}CyTnZx6EU(b{*fM`kUpks^Q|W4&8Uls*%*g?m{(;3HQ534PIt+9xAO#u>guw- z&Shb9A2!D!_bEC|&zPpOmN}6bwI(rYoWi1o;FcX(<|7%ow<)B-)O=6tmIt_{Q5!__ zBn^s@GtEGcqysyc4g`x0ss~n6W~9VprQAb!lgB(;F5Y67j?HJJuKPZ$uE?jv$kkG! z&1aC5C1N@wV@=75yj;yQ@<7!=OR?9X_|lKiMY&f=89k=i1BGqx5IHoz`duGAviV{!Jjw*BYaCFVpb}WlxS!LHZElY-Cj5@ zKJ}{?j9g#um2|0V69$fni#zq{9F)rR#=xrpD&rcSMPNT@Oxdtg4Xi0RzB-0F0QGqe zW*)v#&2~y%7KzxXk`E$%QQ^eHIfIR~@WohFUD3x<YKKAmQy0qcYvzsyH6 zqNS&%?1;00JdOY4WLnJtj`4|%BsQ-op$WBi&1=SA&CGat7Db&SUvPXi3te!0!Vhke zNPK#pW*&o+D>yJUO9wPZN5hMt?FDdJoU!rzZZu6BVH#E^Dt02*y(85;HcvHm_bc|( zNfQoS{j;uFu`OL!Y@W;~ILiqb;fKd&VpEh{QMMkP*6|f1GjH-G#{}gh z%vRx&vH1ozPsQhI=?_J9?7*$-OR#y|%r}p`LI!n2YF3OvFBmYbsl$F)RFB2OlaQSu z;i;Z5vWf}YW1pcoeP4;}F97?E8TP=3!p_{HM{J*B1*EvGxP_5bnSM3JXY!c;s7dBq zi(7E`cd*H2bb*(DzTKGUB~HYH-_!pCPM1ww>pcL|EwK%HgTS1{s#j4xjX~`Kc3YxM zvQ%|T^Dcu^0D8kHtw6Si%@@u-W$2dwfRIhG5a~x5gBA}!T;MoEtxfXHVOLnuq-l3t z7SlFm|7M65{3Qv425czc)_NcZYQMx{LM&d$1LP7gUZ26YR~G)Gbp!{6beA+@o8|el zu#xognE#8r_D}KE&tQR{3QQk1b$#_mkaM8U%^7v#$PkAOWcoA|bLk9}a^UnZMjxoc zp&U-=Ihv3cQj6@>JfgoR)NPA6=a9CHgPt2QdS=`bhw||7Vh$5tp+R|05!dIg)*QYz@y!1q7TAp!$n?=P_7(I^+Fd83K!Uds^&IAZVX*nBvg zAR{1?Ib!W)Bl^fJ}*pZsy|0l`_*t_!s6{-LE5t^qFhs5F* z$6f3e-iJ?5=s@kl9=L(zUkId1o80vwXnO%lc~;T*9HOpf2WH;A-?ekeGirIs%tr zGx8QFx)>Grnb+5QCBa`L@_83}qMrS+QZ&qA--H10F98Pgh&Ce;Ie-n{#^e#feJH*k z#%2VY3=slagz53iP6?z7?{jh5|{Q)`RH=~nCDb231Q z026q8vakvzlVK>3!8dHKsDI

iqNHoMh{0ozU=bV{4ckah~ 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 literal 0 HcmV?d00001 diff --git a/config/src/test/resources/serialized/6.4.x/org.springframework.security.authentication.event.AuthenticationFailureLockedEvent.serialized b/config/src/test/resources/serialized/6.4.x/org.springframework.security.authentication.event.AuthenticationFailureLockedEvent.serialized new file mode 100644 index 0000000000000000000000000000000000000000..46609358d9b1a9771dac5931fe430f815ec97c21 GIT binary patch literal 11329 zcmeGiZHygN^}cP{b_*1!EiJTAS{@WE%x)>Rlb?50f**Q_jhW)T=MM3D+tK*?v%w(x;rexpPs0zZCp9@>yIv#YgT6DxEBy#?>QCeCum9>BTiO_#3EAj7ATSn*&~`*2 zAtG_(i@UCie(~D6HdY#B9el>&0Wv69_aKn#%)%ok*A?M*fN4GhG7SPxNtu?8J@EItAKd%vzrY3$unytYcqHsv04%PW zw5M&WAzaTQ$U|e3+!2E(JBHTOKK3mn6);wMbb9F6PeHxiMMPt9WYw#57z<>{lS~o>-BT1 zqY}@hBoNQ8SFK^738K<~Pu$(UciD~i|5XCMF9FmLzd5sh_odzIUdlm?PK5q(d(7jn zy!?SpJC2|FIqRNzM3`MhfQq8qFN#VFU-B5X}T7u=uYCw#W_w!S=Sas}XW_Bg(<`f|V&$ zBRq6%&%GCQJ_@G|WZXG_U<<_tTJh}KSj8@bhQVo;w|4~rZFUuK$ZkY#R||F%GU(O; zrtY{tJP97wZO^LmIuC8(hgQvv9BXgIpVb?1j zNYXkI@o)s}%yW4~lQ|uY>H<^Dj59);6 z7F@;^6ZBLD6n}0t0VXp5f~}FbhJ9a1eEXHLo6CA=85mg;we*LfA8PeqWd2l=xER7{ z#l;N3_AnngR3{*l2zjE_NGTS{g<0NA@Y9N?%bW1j6S(_pfd_(BPuetgnrNQW64{MU zdjxBjR1Kig84a`spDux*0LPJ>5$|n;A;baYqsV#kC|=CohClFl*H2ca5;qd^aSt+r z*njZKLGr2)lIbwt01MjP`m{f#jS~Dn+YHlN3i0%Dk5|E+)vIYla{n7zz1Bh*5Uhg& z%b1Pfvwh2UtIOIdT_aF$y9ubTNg_|Y1xZk_bLB&V4&_A7?KbUR+ukNIg4afsO*ZPT zumaB(7^W=8uhsl|B-5s0DIll(HKml$phJc!u^;wM*lxWH z4#KUF3KJl~)+ax*E3~AKn%sPK9{U!&j)B=4g*?n}i2fNh0sGEQseN})07Q08T3;Yq zINXWDF^GK{4#P8s>AYs{%B@ zF-^k^n1s@U?SZq{sAq~+DtW9@IfOrc)OXe4EvFKRk0@SmdAGbGo{C@>D2guaAWcj9 zbiqdEMJu*)z0cSJ^#rdZR)^$o$0229x2WCidRG*Sag*<-DBux*V9OmmAw6|sD{+Z< z%&#IwaFD?GG+^53F%3Z0Q^^4woeSU(1RxltM1|+O!Xqbi@hDqp_R?_isZYNU?6PLB zlu2EZQg8xXzRBFqe#J~rB6#gUm0!bJ1oA;^!i7vVbS9u=^(%0DLa-L7Q+oUitrW}%PxI0v z?grvC{!^Q2w?io7QxQofuSj7YZ0%Ukjz5>%@rt|@O^kHl=rl`SaDB=Su2hov@B%G* z1S(fBU~X6T8HSFEm+syVp<0}Fv3|Ga4I9feYK+y~RIGbLv3YcXY?|g*?&IS&6kL6? zb-U&|Ca;M7L{2upC89VyS`2WK00g7raX!8&4z5Vs^iJ#P#Hh%den~PxIw`f)h%yde z!r{wFU9Ie)tji8eU7v^KaWf^4)D?r?A-8MRfFJhT&cvZ0D(lDcp>c@L5b*R&6l=wX z^f(Ym&de(j{b@jdbq+n?;gFd-{IDBv?0}TFmbVCYac*93@rfej-=8P)8_HX7`PXqM zM0A?kKVNGN^gIEP^LzY%fa$D}Yrh@DbWNgzo-nj$vFlaVPb1K~fNV>)NtWwrrQQpn z3P5WZ<~4}+kbL3pGm38e4-nau5K(rNQ)qb~_yv+P^x72O0(7O7^HlBjv!dF0>3=>z zi~gJzgCW>Rirbih7-;;GhY4lzOp!p&0OAcf`Sz%0e|(OhP{>XxB`$URU=|WdzXwkks`yU%|cz>|B*&C-Dr4+d!m`Lo=68Ln{ZWhY@~H1B!B}&8&##{i}HVS-h%<-8sOI%9s;n@NtV2n8XJq=XkL*SI*`|sfJG!9L) zh_9re@#zH|GDoRoY6IW@xBv(gfU`frfxJ5ZIia1VQmf54Ln*UNt#SaeGQ#O3r@qfjx))ryAg%{Y46;7K z=}+PCX&fFj0UpMgOkV$x2{0!Q*-`=#o-{GEEFB>0JLe7Xy7I!1l1iOWASQB-&*GEm z_fY=VYR+j7pNDcv7P38_XObu1k=fz@r<74(Z!S!z2>p-uqR#MY@2tN3$vzI#11B>9QxqVSEMHzrad2M@8L?tu200Oq@bL?A~a$>Ar|( zH|ov=H1O%W19|Z#Ykg>DAA(L7)U>L&xT3||V#41hvBOYWhQqn|GbI+;&}{*5GcG}Y zp)lkt;#7n9WDfk|(J@;z)5xMH9%ct3Y{a`KeySpb{$F zuw-V6<#a@|y%O12mE)k30E#h?^01+90|B+R-Zp0 zy*)sWdirzI8)-l-uSKNgC)m0sZ(==`^u>G|T#dd36pQahhu|`7THON07o+k%^Ri~I zl<=3xc;1DUXhwhR6dfe7Z$bgkmjDArK${VW?Zbi6m?9v!55@NfaTvlO2ZRDG!}jR1 zQwh|KKP0KRQD6&a!h#|Z8}i`7`qUI$qva>n)|STWOs%b+AioMqI9cEPrPgPP+%X_G)RG*S%FJv`p{HU8&=M-gzu~+lcTf6zf=i0l z#PpNTXv0i2n=!79_zZ6u+MaL$rfhS~oNn5IwN<~Do$_7Xx68vcjqvAh*p z8Ocwjr$u3-ZmQ^kj22qBs~iPX=`J`|s<8?!lY`J8gKyaCvj2_WVwtq6wAou|84O8) zK!e=V>Lp(BQ!81?0c40?DRHcdH@H;tDpn6!t&YG_9D-e1IIp#(!xeHf3j}X7tfe)< zk=aP_n(-N?VX`sxO>+Y&6)lE)F`e)uGkZxicPrV=phPsaPtd-6k#aS(HhjcPR}CwisKY01~qGNta1QD)1apxxW?&>bBl{YV~tF OpL*go@O3l6%zpt=Zz1OZ literal 0 HcmV?d00001 diff --git a/config/src/test/resources/serialized/6.4.x/org.springframework.security.authentication.event.AuthenticationFailureProviderNotFoundEvent.serialized b/config/src/test/resources/serialized/6.4.x/org.springframework.security.authentication.event.AuthenticationFailureProviderNotFoundEvent.serialized new file mode 100644 index 0000000000000000000000000000000000000000..18de70b6051208f01718a3b6d727bbf0cdab0fe8 GIT binary patch literal 11268 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 literal 0 HcmV?d00001 diff --git a/config/src/test/resources/serialized/6.4.x/org.springframework.security.authentication.event.AuthenticationFailureProxyUntrustedEvent.serialized b/config/src/test/resources/serialized/6.4.x/org.springframework.security.authentication.event.AuthenticationFailureProxyUntrustedEvent.serialized new file mode 100644 index 0000000000000000000000000000000000000000..f348e60c844bf665224fdb5f20502093bb695520 GIT binary patch literal 11271 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 literal 0 HcmV?d00001 diff --git a/config/src/test/resources/serialized/6.4.x/org.springframework.security.authentication.event.AuthenticationSuccessEvent.serialized b/config/src/test/resources/serialized/6.4.x/org.springframework.security.authentication.event.AuthenticationSuccessEvent.serialized new file mode 100644 index 0000000000000000000000000000000000000000..d04eb51778bdbfb327fbf11ba216260556902228 GIT binary patch literal 304 zcmZ4UmVvdnh`}enC|$3(peQphJ*_A)H?=&!C|j>MHMz7Xv!qflv9u&3HLoNyIk6-& zKTj{U49L-QL=g-wO-@cNE_MY;DVu)ZrN6>rH4_6vMG=E98Ac}+mlP!?m!Mh!Hv6Q) z^1qiFY=1(`*1=|Wa(-S(Y6Z}N1qC@!Cxf*nwY-k+a6kKyiGk6JfwLqtH?_DVF}DEd sMA59ovP8YolFS@EuuA`=tkmQZpI%NsiQL*1Agc-(7#OFN`NiA^0B2WqjQ{`u literal 0 HcmV?d00001 diff --git a/config/src/test/resources/serialized/6.4.x/org.springframework.security.authentication.event.InteractiveAuthenticationSuccessEvent.serialized b/config/src/test/resources/serialized/6.4.x/org.springframework.security.authentication.event.InteractiveAuthenticationSuccessEvent.serialized new file mode 100644 index 0000000000000000000000000000000000000000..49143cf81885e7b75fc7e83f06b7a6961f800163 GIT binary patch literal 414 zcmZ4UmVvdnh#@?`C|$3(peQphJ*_A)H?=&!C|j>MHMz7Xv!qflv9u&3HLoNyIk6-& zKTj{U49L;*%qvMPN=z=vEK7Ankq<6SPEIW@b_J<=lBhIMBf`^}iGk6Ffjd1l52&Ri zHN~m2gh9|JE3qt5KPNFSUEet;vAEc}qKLtlbayx=6_b>qrMHMz7Xv!qflv9u&3HLoNyIk6-& zKTj{U49L;*$xqKOEeS47PEIW@b_EH!eYP+zP|euR#K2Hd#NbQ1k&a2lB}IwJC5|Ze zfz3Xtu>9|(2HT$yvvshUot&Rnl3G!s=U7mX19d7`Yf{VW_zw5851AMky%;!4GILXl xOA>PnfKC+6N-Rs%D=o>)(F3dWPs&P7F7fH*^pnV~T>-MHfPsN=N||5Ga{x3^aohj^ literal 0 HcmV?d00001 diff --git a/config/src/test/resources/serialized/6.4.x/org.springframework.security.authentication.jaas.event.JaasAuthenticationFailedEvent.serialized b/config/src/test/resources/serialized/6.4.x/org.springframework.security.authentication.jaas.event.JaasAuthenticationFailedEvent.serialized new file mode 100644 index 0000000000000000000000000000000000000000..d371ae6ae4b35e4494fa7c2ba264dfdf99d49199 GIT binary patch literal 10968 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 D#sr91 literal 0 HcmV?d00001 diff --git a/config/src/test/resources/serialized/6.4.x/org.springframework.security.authentication.jaas.event.JaasAuthenticationSuccessEvent.serialized b/config/src/test/resources/serialized/6.4.x/org.springframework.security.authentication.jaas.event.JaasAuthenticationSuccessEvent.serialized new file mode 100644 index 0000000000000000000000000000000000000000..6532dac81f9e14282b16b768638ae7cd9ba00f72 GIT binary patch literal 314 zcmZ4UmVvdnh#@q;C|$3(peQphJ*_A)H?=&!C|j>MHMz7Xv!qflv9u&3HLoNyIk6-& zKTj_!F|k-LwG1et=LKXsqR0l9CMTyB7rTO_<+;vr|42P&%EZ7>QN-X!H9NqD*NH{H z40-%44`R3uHp7$i^GZ@HO7t8H3UZ*12Ww4gc^%*3e)b^~1EUuMXGvymYH>+oZUNAZ rqFIS$iF&0anK^o3mHtUtsmUciy_|j$xwR`mRuwQXFit7+i}?Zo9g%na literal 0 HcmV?d00001 diff --git a/config/src/test/resources/serialized/6.4.x/org.springframework.security.core.session.AbstractSessionEvent.serialized b/config/src/test/resources/serialized/6.4.x/org.springframework.security.core.session.AbstractSessionEvent.serialized new file mode 100644 index 0000000000000000000000000000000000000000..a22f7a0f9b301f61a27bc9a26303e0e4b63b8382 GIT binary patch literal 198 zcmZ4UmVvdnh`}zuC|$3(peQphJ*_A)H?=&!C|j>MHMz7Xv!qflIlm|s$SW?+%+J$v zOe!uZN=z;ZhVWg>Qu9g{bozcjVqL(=#K2Hd#Gr%Cu;l!_lGKV4J;#EAoXq6J5};9F ztw}Af<2&5XK4fBG^kU#F$;?eHE=kNS02(8jl~|UjS6Y&pqX$;$pOlrFT;kKq=_ip} Ry8>iY0Rsc$lrq1V{{X;DN}d1! literal 0 HcmV?d00001 diff --git a/config/src/test/resources/serialized/6.4.x/org.springframework.security.web.authentication.session.SessionFixationProtectionEvent.serialized b/config/src/test/resources/serialized/6.4.x/org.springframework.security.web.authentication.session.SessionFixationProtectionEvent.serialized new file mode 100644 index 0000000000000000000000000000000000000000..4fc1f92cb28c81f01751073ec619d3db40c623ee GIT binary patch literal 382 zcmZ4UmVvdnh#@S$C|$3(peQphJ*_A)H?=&!C|j>MHMz7Xv!qh5JT*x#v9u&3HLoNy zIk6-&KMyEZTnwUvA+%d&1z0?wD8D2%8KlCs45<1}kH%Ghwku9d3`{-@Jb9_*Q01N} zB@9A7S&3zd`ZH5JXAe*g$YVvbZ;A#pP>KGU+iWq$HIu6ZYsUUmx9FvMmiV~Ac z98p{icGF3P<$o_V*#2Zlo61hUq zMg)I=Vq>R;|A>f%_7>KXQp7^=%_iqwLNGYhGVjgzeee6;zTbp{&caP?o6H%j(&mcg ziR@^*&YTo2tFXs9vcY%@S7nMya8x>FuA@+_ww$zVdPk*}73x%|w5k8bkNH<`#^v!M z6hb(J+%_fpB0@PN&R`d3FyIV?wleVekwmUy7x-6~x4z3=3s?WCc$Zq~rLgISL(2v3 z6r9QYaQ5x*Fa1luiU5RtelKjHQ zCb$r~m10$=m99}%MoTcB--TMN`>RPo6(1yz-EixuOnD=gQ3!{AQ oqrVh+`1EIuSRD`iMkp;Vgq7ubt+LofIC3x5+HB;Zjre^20D41h9RL6T literal 0 HcmV?d00001 diff --git a/config/src/test/resources/serialized/6.4.x/org.springframework.security.web.session.HttpSessionCreatedEvent.serialized b/config/src/test/resources/serialized/6.4.x/org.springframework.security.web.session.HttpSessionCreatedEvent.serialized new file mode 100644 index 0000000000000000000000000000000000000000..95888e6e1cce1dfc2db81311a0ddccdc81ae31cd GIT binary patch literal 354 zcmZ4UmVvdnh`}MhC|$3(peQphJ*_A)H?=&!C|j>MHMz7Xv!qh5JT(c(DK5^;&(rfL zDJcksu$_xi6H8K4T+34PN@mu6liQU%*_(-hp`wVv4zF>^`9-O4^N`H~nh!Rt@Tss^ z-Ksa+NjA(esko#lF}Vb4DA=$Coxb0XSQl_Y4Aa5pvgG`{lGKV4J;#EAoXq6J5|}%Z zT3*L@xSxH<#K7pqz*&-+n_66wm|Fn!plDWNS)yKPNoI~7*b@JwtkmQZpI%NsiQL*1 QAgc-(7#OFN`NaeS0K4gj4FCWD literal 0 HcmV?d00001 diff --git a/core/src/main/java/org/springframework/security/access/event/AuthenticationCredentialsNotFoundEvent.java b/core/src/main/java/org/springframework/security/access/event/AuthenticationCredentialsNotFoundEvent.java index daae07eec9..8d7107ed5b 100644 --- a/core/src/main/java/org/springframework/security/access/event/AuthenticationCredentialsNotFoundEvent.java +++ b/core/src/main/java/org/springframework/security/access/event/AuthenticationCredentialsNotFoundEvent.java @@ -32,6 +32,7 @@ import org.springframework.util.Assert; * instead. */ @Deprecated +@SuppressWarnings("serial") public class AuthenticationCredentialsNotFoundEvent extends AbstractAuthorizationEvent { private final AuthenticationCredentialsNotFoundException credentialsNotFoundException; diff --git a/core/src/main/java/org/springframework/security/access/event/AuthorizationFailureEvent.java b/core/src/main/java/org/springframework/security/access/event/AuthorizationFailureEvent.java index eac534ba6d..fba28adf0b 100644 --- a/core/src/main/java/org/springframework/security/access/event/AuthorizationFailureEvent.java +++ b/core/src/main/java/org/springframework/security/access/event/AuthorizationFailureEvent.java @@ -39,6 +39,7 @@ import org.springframework.util.Assert; * instead */ @Deprecated +@SuppressWarnings("serial") public class AuthorizationFailureEvent extends AbstractAuthorizationEvent { private final AccessDeniedException accessDeniedException; diff --git a/core/src/main/java/org/springframework/security/access/event/AuthorizedEvent.java b/core/src/main/java/org/springframework/security/access/event/AuthorizedEvent.java index 7697dea90d..3ec29ce6a2 100644 --- a/core/src/main/java/org/springframework/security/access/event/AuthorizedEvent.java +++ b/core/src/main/java/org/springframework/security/access/event/AuthorizedEvent.java @@ -34,6 +34,7 @@ import org.springframework.util.Assert; * instead */ @Deprecated +@SuppressWarnings("serial") public class AuthorizedEvent extends AbstractAuthorizationEvent { private final Authentication authentication; diff --git a/core/src/main/java/org/springframework/security/access/event/PublicInvocationEvent.java b/core/src/main/java/org/springframework/security/access/event/PublicInvocationEvent.java index 2aab5dba91..7289d8a1ed 100644 --- a/core/src/main/java/org/springframework/security/access/event/PublicInvocationEvent.java +++ b/core/src/main/java/org/springframework/security/access/event/PublicInvocationEvent.java @@ -34,6 +34,7 @@ import org.springframework.security.authorization.event.AuthorizationGrantedEven * {@link AuthorizationGrantedEvent#getSource()} to deduce public invocations. */ @Deprecated +@SuppressWarnings("serial") public class PublicInvocationEvent extends AbstractAuthorizationEvent { /** diff --git a/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureBadCredentialsEvent.java b/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureBadCredentialsEvent.java index 796690b0e6..6c80a3e883 100644 --- a/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureBadCredentialsEvent.java +++ b/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureBadCredentialsEvent.java @@ -16,6 +16,8 @@ package org.springframework.security.authentication.event; +import java.io.Serial; + import org.springframework.security.core.Authentication; import org.springframework.security.core.AuthenticationException; @@ -27,6 +29,9 @@ import org.springframework.security.core.AuthenticationException; */ public class AuthenticationFailureBadCredentialsEvent extends AbstractAuthenticationFailureEvent { + @Serial + private static final long serialVersionUID = -5245144711561130379L; + public AuthenticationFailureBadCredentialsEvent(Authentication authentication, AuthenticationException exception) { super(authentication, exception); } diff --git a/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureCredentialsExpiredEvent.java b/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureCredentialsExpiredEvent.java index 57f218a239..2849ba0371 100644 --- a/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureCredentialsExpiredEvent.java +++ b/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureCredentialsExpiredEvent.java @@ -16,6 +16,8 @@ package org.springframework.security.authentication.event; +import java.io.Serial; + import org.springframework.security.core.Authentication; import org.springframework.security.core.AuthenticationException; @@ -27,6 +29,9 @@ import org.springframework.security.core.AuthenticationException; */ public class AuthenticationFailureCredentialsExpiredEvent extends AbstractAuthenticationFailureEvent { + @Serial + private static final long serialVersionUID = -7595086332769705203L; + public AuthenticationFailureCredentialsExpiredEvent(Authentication authentication, AuthenticationException exception) { super(authentication, exception); diff --git a/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureDisabledEvent.java b/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureDisabledEvent.java index 3a4604354f..79c0fd479f 100644 --- a/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureDisabledEvent.java +++ b/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureDisabledEvent.java @@ -16,6 +16,8 @@ package org.springframework.security.authentication.event; +import java.io.Serial; + import org.springframework.security.core.Authentication; import org.springframework.security.core.AuthenticationException; @@ -27,6 +29,9 @@ import org.springframework.security.core.AuthenticationException; */ public class AuthenticationFailureDisabledEvent extends AbstractAuthenticationFailureEvent { + @Serial + private static final long serialVersionUID = 8037552364666766279L; + public AuthenticationFailureDisabledEvent(Authentication authentication, AuthenticationException exception) { super(authentication, exception); } diff --git a/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureExpiredEvent.java b/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureExpiredEvent.java index 086e16cb37..a1f680dc5d 100644 --- a/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureExpiredEvent.java +++ b/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureExpiredEvent.java @@ -16,6 +16,8 @@ package org.springframework.security.authentication.event; +import java.io.Serial; + import org.springframework.security.core.Authentication; import org.springframework.security.core.AuthenticationException; @@ -27,6 +29,9 @@ import org.springframework.security.core.AuthenticationException; */ public class AuthenticationFailureExpiredEvent extends AbstractAuthenticationFailureEvent { + @Serial + private static final long serialVersionUID = -8437264795214121718L; + public AuthenticationFailureExpiredEvent(Authentication authentication, AuthenticationException exception) { super(authentication, exception); } diff --git a/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureLockedEvent.java b/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureLockedEvent.java index 544964cdec..5cc0702909 100644 --- a/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureLockedEvent.java +++ b/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureLockedEvent.java @@ -16,6 +16,8 @@ package org.springframework.security.authentication.event; +import java.io.Serial; + import org.springframework.security.core.Authentication; import org.springframework.security.core.AuthenticationException; @@ -27,6 +29,9 @@ import org.springframework.security.core.AuthenticationException; */ public class AuthenticationFailureLockedEvent extends AbstractAuthenticationFailureEvent { + @Serial + private static final long serialVersionUID = -5126110096093568463L; + public AuthenticationFailureLockedEvent(Authentication authentication, AuthenticationException exception) { super(authentication, exception); } diff --git a/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureProviderNotFoundEvent.java b/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureProviderNotFoundEvent.java index 1a1cf7c87e..ee4f5538e2 100644 --- a/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureProviderNotFoundEvent.java +++ b/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureProviderNotFoundEvent.java @@ -16,6 +16,8 @@ package org.springframework.security.authentication.event; +import java.io.Serial; + import org.springframework.security.core.Authentication; import org.springframework.security.core.AuthenticationException; @@ -27,6 +29,9 @@ import org.springframework.security.core.AuthenticationException; */ public class AuthenticationFailureProviderNotFoundEvent extends AbstractAuthenticationFailureEvent { + @Serial + private static final long serialVersionUID = 9122219669183263487L; + public AuthenticationFailureProviderNotFoundEvent(Authentication authentication, AuthenticationException exception) { super(authentication, exception); diff --git a/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureProxyUntrustedEvent.java b/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureProxyUntrustedEvent.java index 772774d3f1..31617e6caa 100644 --- a/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureProxyUntrustedEvent.java +++ b/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureProxyUntrustedEvent.java @@ -16,6 +16,8 @@ package org.springframework.security.authentication.event; +import java.io.Serial; + import org.springframework.security.core.Authentication; import org.springframework.security.core.AuthenticationException; @@ -27,6 +29,9 @@ import org.springframework.security.core.AuthenticationException; */ public class AuthenticationFailureProxyUntrustedEvent extends AbstractAuthenticationFailureEvent { + @Serial + private static final long serialVersionUID = 1801476426012753252L; + public AuthenticationFailureProxyUntrustedEvent(Authentication authentication, AuthenticationException exception) { super(authentication, exception); } diff --git a/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureServiceExceptionEvent.java b/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureServiceExceptionEvent.java index 167d5fae3b..d84f38625e 100644 --- a/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureServiceExceptionEvent.java +++ b/core/src/main/java/org/springframework/security/authentication/event/AuthenticationFailureServiceExceptionEvent.java @@ -16,6 +16,8 @@ package org.springframework.security.authentication.event; +import java.io.Serial; + import org.springframework.security.core.Authentication; import org.springframework.security.core.AuthenticationException; @@ -27,6 +29,9 @@ import org.springframework.security.core.AuthenticationException; */ public class AuthenticationFailureServiceExceptionEvent extends AbstractAuthenticationFailureEvent { + @Serial + private static final long serialVersionUID = 5580062757249390756L; + public AuthenticationFailureServiceExceptionEvent(Authentication authentication, AuthenticationException exception) { super(authentication, exception); diff --git a/core/src/main/java/org/springframework/security/authentication/event/AuthenticationSuccessEvent.java b/core/src/main/java/org/springframework/security/authentication/event/AuthenticationSuccessEvent.java index 5b3b9bcd24..5b18199a6c 100644 --- a/core/src/main/java/org/springframework/security/authentication/event/AuthenticationSuccessEvent.java +++ b/core/src/main/java/org/springframework/security/authentication/event/AuthenticationSuccessEvent.java @@ -16,6 +16,8 @@ package org.springframework.security.authentication.event; +import java.io.Serial; + import org.springframework.security.core.Authentication; /** @@ -25,6 +27,9 @@ import org.springframework.security.core.Authentication; */ public class AuthenticationSuccessEvent extends AbstractAuthenticationEvent { + @Serial + private static final long serialVersionUID = 2537206344128673963L; + public AuthenticationSuccessEvent(Authentication authentication) { super(authentication); } diff --git a/core/src/main/java/org/springframework/security/authentication/event/InteractiveAuthenticationSuccessEvent.java b/core/src/main/java/org/springframework/security/authentication/event/InteractiveAuthenticationSuccessEvent.java index c93d2a9165..eac89b4eaf 100644 --- a/core/src/main/java/org/springframework/security/authentication/event/InteractiveAuthenticationSuccessEvent.java +++ b/core/src/main/java/org/springframework/security/authentication/event/InteractiveAuthenticationSuccessEvent.java @@ -16,6 +16,8 @@ package org.springframework.security.authentication.event; +import java.io.Serial; + import org.springframework.security.core.Authentication; import org.springframework.util.Assert; @@ -34,6 +36,9 @@ import org.springframework.util.Assert; */ public class InteractiveAuthenticationSuccessEvent extends AbstractAuthenticationEvent { + @Serial + private static final long serialVersionUID = -1990271553478571709L; + private final Class generatedBy; public InteractiveAuthenticationSuccessEvent(Authentication authentication, Class generatedBy) { diff --git a/core/src/main/java/org/springframework/security/authentication/event/LogoutSuccessEvent.java b/core/src/main/java/org/springframework/security/authentication/event/LogoutSuccessEvent.java index 094d0a332d..1ea77c2a21 100644 --- a/core/src/main/java/org/springframework/security/authentication/event/LogoutSuccessEvent.java +++ b/core/src/main/java/org/springframework/security/authentication/event/LogoutSuccessEvent.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2019 the original author or authors. + * Copyright 2002-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. @@ -16,6 +16,8 @@ package org.springframework.security.authentication.event; +import java.io.Serial; + import org.springframework.security.core.Authentication; /** @@ -26,6 +28,9 @@ import org.springframework.security.core.Authentication; */ public class LogoutSuccessEvent extends AbstractAuthenticationEvent { + @Serial + private static final long serialVersionUID = 5112491795571632311L; + public LogoutSuccessEvent(Authentication authentication) { super(authentication); } diff --git a/core/src/main/java/org/springframework/security/authentication/jaas/event/JaasAuthenticationFailedEvent.java b/core/src/main/java/org/springframework/security/authentication/jaas/event/JaasAuthenticationFailedEvent.java index 4b70d77950..c3b6d427bd 100644 --- a/core/src/main/java/org/springframework/security/authentication/jaas/event/JaasAuthenticationFailedEvent.java +++ b/core/src/main/java/org/springframework/security/authentication/jaas/event/JaasAuthenticationFailedEvent.java @@ -16,6 +16,8 @@ package org.springframework.security.authentication.jaas.event; +import java.io.Serial; + import org.springframework.security.core.Authentication; /** @@ -26,6 +28,9 @@ import org.springframework.security.core.Authentication; */ public class JaasAuthenticationFailedEvent extends JaasAuthenticationEvent { + @Serial + private static final long serialVersionUID = -240510538971925002L; + private final Exception exception; public JaasAuthenticationFailedEvent(Authentication auth, Exception exception) { diff --git a/core/src/main/java/org/springframework/security/authentication/jaas/event/JaasAuthenticationSuccessEvent.java b/core/src/main/java/org/springframework/security/authentication/jaas/event/JaasAuthenticationSuccessEvent.java index 0afa2b882b..ec654a2a9f 100644 --- a/core/src/main/java/org/springframework/security/authentication/jaas/event/JaasAuthenticationSuccessEvent.java +++ b/core/src/main/java/org/springframework/security/authentication/jaas/event/JaasAuthenticationSuccessEvent.java @@ -16,6 +16,8 @@ package org.springframework.security.authentication.jaas.event; +import java.io.Serial; + import org.springframework.security.core.Authentication; /** @@ -28,6 +30,9 @@ import org.springframework.security.core.Authentication; */ public class JaasAuthenticationSuccessEvent extends JaasAuthenticationEvent { + @Serial + private static final long serialVersionUID = 2236826715750256181L; + public JaasAuthenticationSuccessEvent(Authentication auth) { super(auth); } diff --git a/core/src/main/java/org/springframework/security/authorization/event/AuthorizationDeniedEvent.java b/core/src/main/java/org/springframework/security/authorization/event/AuthorizationDeniedEvent.java index 94e7d6a231..05d0fcdbc5 100644 --- a/core/src/main/java/org/springframework/security/authorization/event/AuthorizationDeniedEvent.java +++ b/core/src/main/java/org/springframework/security/authorization/event/AuthorizationDeniedEvent.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2022 the original author or authors. + * Copyright 2002-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. @@ -30,6 +30,7 @@ import org.springframework.security.core.Authentication; * @author Josh Cummings * @since 5.7 */ +@SuppressWarnings("serial") public class AuthorizationDeniedEvent extends AuthorizationEvent { /** diff --git a/core/src/main/java/org/springframework/security/authorization/event/AuthorizationEvent.java b/core/src/main/java/org/springframework/security/authorization/event/AuthorizationEvent.java index a848dff491..d4bce6b586 100644 --- a/core/src/main/java/org/springframework/security/authorization/event/AuthorizationEvent.java +++ b/core/src/main/java/org/springframework/security/authorization/event/AuthorizationEvent.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2022 the original author or authors. + * Copyright 2002-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. @@ -16,6 +16,7 @@ package org.springframework.security.authorization.event; +import java.io.Serial; import java.util.function.Supplier; import org.springframework.context.ApplicationEvent; @@ -31,8 +32,12 @@ import org.springframework.util.Assert; * @author Josh Cummings * @since 5.8 */ +@SuppressWarnings("serial") public class AuthorizationEvent extends ApplicationEvent { + @Serial + private static final long serialVersionUID = -9053927371500241295L; + private final Supplier authentication; private final AuthorizationResult result; diff --git a/core/src/main/java/org/springframework/security/authorization/event/AuthorizationGrantedEvent.java b/core/src/main/java/org/springframework/security/authorization/event/AuthorizationGrantedEvent.java index 693bc7e4a7..9cde351930 100644 --- a/core/src/main/java/org/springframework/security/authorization/event/AuthorizationGrantedEvent.java +++ b/core/src/main/java/org/springframework/security/authorization/event/AuthorizationGrantedEvent.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2022 the original author or authors. + * Copyright 2002-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. @@ -16,6 +16,7 @@ package org.springframework.security.authorization.event; +import java.io.Serial; import java.util.function.Supplier; import org.springframework.context.ApplicationEvent; @@ -30,8 +31,12 @@ import org.springframework.security.core.Authentication; * @author Josh Cummings * @since 5.7 */ +@SuppressWarnings("serial") public class AuthorizationGrantedEvent extends AuthorizationEvent { + @Serial + private static final long serialVersionUID = -8690818228055810339L; + /** * @deprecated please use a constructor that takes an * {@link org.springframework.security.authorization.AuthorizationResult} diff --git a/core/src/main/java/org/springframework/security/core/context/SecurityContextChangedEvent.java b/core/src/main/java/org/springframework/security/core/context/SecurityContextChangedEvent.java index c14125c475..ac38804cff 100644 --- a/core/src/main/java/org/springframework/security/core/context/SecurityContextChangedEvent.java +++ b/core/src/main/java/org/springframework/security/core/context/SecurityContextChangedEvent.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2021 the original author or authors. + * Copyright 2002-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. @@ -26,6 +26,7 @@ import org.springframework.context.ApplicationEvent; * @author Josh Cummings * @since 5.6 */ +@SuppressWarnings("serial") public class SecurityContextChangedEvent extends ApplicationEvent { public static final Supplier NO_CONTEXT = () -> null; diff --git a/core/src/main/java/org/springframework/security/core/session/AbstractSessionEvent.java b/core/src/main/java/org/springframework/security/core/session/AbstractSessionEvent.java index 4c8c20da5c..a02ad09eb6 100644 --- a/core/src/main/java/org/springframework/security/core/session/AbstractSessionEvent.java +++ b/core/src/main/java/org/springframework/security/core/session/AbstractSessionEvent.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2020 the original author or authors. + * Copyright 2002-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. @@ -16,6 +16,8 @@ package org.springframework.security.core.session; +import java.io.Serial; + import org.springframework.context.ApplicationEvent; /** @@ -26,6 +28,9 @@ import org.springframework.context.ApplicationEvent; */ public class AbstractSessionEvent extends ApplicationEvent { + @Serial + private static final long serialVersionUID = -6878881229287231479L; + public AbstractSessionEvent(Object source) { super(source); } diff --git a/web/src/main/java/org/springframework/security/web/authentication/session/SessionFixationProtectionEvent.java b/web/src/main/java/org/springframework/security/web/authentication/session/SessionFixationProtectionEvent.java index 1b6c36deb3..f06cec22e3 100644 --- a/web/src/main/java/org/springframework/security/web/authentication/session/SessionFixationProtectionEvent.java +++ b/web/src/main/java/org/springframework/security/web/authentication/session/SessionFixationProtectionEvent.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2013 the original author or authors. + * Copyright 2002-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. @@ -16,6 +16,8 @@ package org.springframework.security.web.authentication.session; +import java.io.Serial; + import org.springframework.security.authentication.event.AbstractAuthenticationEvent; import org.springframework.security.core.Authentication; import org.springframework.util.Assert; @@ -29,6 +31,9 @@ import org.springframework.util.Assert; */ public class SessionFixationProtectionEvent extends AbstractAuthenticationEvent { + @Serial + private static final long serialVersionUID = -2554621992006921150L; + private final String oldSessionId; private final String newSessionId; diff --git a/web/src/main/java/org/springframework/security/web/authentication/switchuser/AuthenticationSwitchUserEvent.java b/web/src/main/java/org/springframework/security/web/authentication/switchuser/AuthenticationSwitchUserEvent.java index 70ba6108bb..5b7af22bf3 100644 --- a/web/src/main/java/org/springframework/security/web/authentication/switchuser/AuthenticationSwitchUserEvent.java +++ b/web/src/main/java/org/springframework/security/web/authentication/switchuser/AuthenticationSwitchUserEvent.java @@ -16,6 +16,8 @@ package org.springframework.security.web.authentication.switchuser; +import java.io.Serial; + import org.springframework.security.authentication.event.AbstractAuthenticationEvent; import org.springframework.security.core.Authentication; import org.springframework.security.core.userdetails.UserDetails; @@ -27,6 +29,9 @@ import org.springframework.security.core.userdetails.UserDetails; */ public class AuthenticationSwitchUserEvent extends AbstractAuthenticationEvent { + @Serial + private static final long serialVersionUID = 6265996480231793939L; + private final UserDetails targetUser; /** diff --git a/web/src/main/java/org/springframework/security/web/session/HttpSessionCreatedEvent.java b/web/src/main/java/org/springframework/security/web/session/HttpSessionCreatedEvent.java index 15dcfff296..547bc7fcdb 100644 --- a/web/src/main/java/org/springframework/security/web/session/HttpSessionCreatedEvent.java +++ b/web/src/main/java/org/springframework/security/web/session/HttpSessionCreatedEvent.java @@ -27,6 +27,7 @@ import org.springframework.security.core.session.SessionCreationEvent; * @author Ray Krueger * @author Luke Taylor */ +@SuppressWarnings("serial") public class HttpSessionCreatedEvent extends SessionCreationEvent { public HttpSessionCreatedEvent(HttpSession session) { diff --git a/web/src/main/java/org/springframework/security/web/session/HttpSessionDestroyedEvent.java b/web/src/main/java/org/springframework/security/web/session/HttpSessionDestroyedEvent.java index 944dd3c202..d3ac900ad4 100644 --- a/web/src/main/java/org/springframework/security/web/session/HttpSessionDestroyedEvent.java +++ b/web/src/main/java/org/springframework/security/web/session/HttpSessionDestroyedEvent.java @@ -33,6 +33,7 @@ import org.springframework.security.core.session.SessionDestroyedEvent; * @author Luke Taylor * @author Rob Winch */ +@SuppressWarnings("serial") public class HttpSessionDestroyedEvent extends SessionDestroyedEvent { public HttpSessionDestroyedEvent(HttpSession session) { diff --git a/web/src/main/java/org/springframework/security/web/session/HttpSessionIdChangedEvent.java b/web/src/main/java/org/springframework/security/web/session/HttpSessionIdChangedEvent.java index 1320c1bb50..ec0b645d58 100644 --- a/web/src/main/java/org/springframework/security/web/session/HttpSessionIdChangedEvent.java +++ b/web/src/main/java/org/springframework/security/web/session/HttpSessionIdChangedEvent.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2020 the original author or authors. + * Copyright 2002-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. @@ -16,6 +16,8 @@ package org.springframework.security.web.session; +import java.io.Serial; + import jakarta.servlet.http.HttpSession; import org.springframework.security.core.session.SessionIdChangedEvent; @@ -26,8 +28,12 @@ import org.springframework.security.core.session.SessionIdChangedEvent; * * @since 5.4 */ +@SuppressWarnings("serial") public class HttpSessionIdChangedEvent extends SessionIdChangedEvent { + @Serial + private static final long serialVersionUID = -5725731666499807941L; + private final String oldSessionId; private final String newSessionId; diff --git a/web/src/main/java/org/springframework/security/web/session/SessionInformationExpiredEvent.java b/web/src/main/java/org/springframework/security/web/session/SessionInformationExpiredEvent.java index 1fa8e1573c..44c99a56b5 100644 --- a/web/src/main/java/org/springframework/security/web/session/SessionInformationExpiredEvent.java +++ b/web/src/main/java/org/springframework/security/web/session/SessionInformationExpiredEvent.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2024 the original author or authors. + * Copyright 2002-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. @@ -30,6 +30,7 @@ import org.springframework.util.Assert; * @author Rob Winch * @since 4.2 */ +@SuppressWarnings("serial") public final class SessionInformationExpiredEvent extends ApplicationEvent { private final HttpServletRequest request;