3838import org .springframework .security .core .AuthenticationException ;
3939import org .springframework .security .core .context .SecurityContext ;
4040import org .springframework .security .core .context .SecurityContextHolder ;
41+ import org .springframework .security .core .context .SecurityContextHolderStrategy ;
4142import org .springframework .security .web .authentication .AbstractAuthenticationProcessingFilter ;
4243import org .springframework .security .web .authentication .AuthenticationFailureHandler ;
4344import org .springframework .security .web .authentication .SimpleUrlAuthenticationFailureHandler ;
@@ -195,6 +196,9 @@ public class CasAuthenticationFilter extends AbstractAuthenticationProcessingFil
195196
196197 private SecurityContextRepository securityContextRepository = new HttpSessionSecurityContextRepository ();
197198
199+ private SecurityContextHolderStrategy securityContextHolderStrategy = SecurityContextHolder
200+ .getContextHolderStrategy ();
201+
198202 public CasAuthenticationFilter () {
199203 super ("/login/cas" );
200204 setAuthenticationFailureHandler (new SimpleUrlAuthenticationFailureHandler ());
@@ -211,9 +215,10 @@ protected final void successfulAuthentication(HttpServletRequest request, HttpSe
211215 }
212216 this .logger .debug (
213217 LogMessage .format ("Authentication success. Updating SecurityContextHolder to contain: %s" , authResult ));
214- SecurityContext context = SecurityContextHolder .createEmptyContext ();
218+
219+ SecurityContext context = this .securityContextHolderStrategy .createEmptyContext ();
215220 context .setAuthentication (authResult );
216- SecurityContextHolder .setContext (context );
221+ this . securityContextHolderStrategy .setContext (context );
217222 this .securityContextRepository .saveContext (context , request , response );
218223 if (this .eventPublisher != null ) {
219224 this .eventPublisher .publishEvent (new InteractiveAuthenticationSuccessEvent (authResult , this .getClass ()));
0 commit comments