如处理安全异常中所示,当请求没有认证且需要认证资源时,需要保存请求以便在认证成功后重新请求受保护的资源。在Spring Security中,这是通过使用RequestCache实现来保存HttpServletRequest来实现的。
HttpServletRequest被保存在RequestCache中。用户成功认证后,RequestCache被用于重放原始请求。RequestCacheAwareFilter用于使用RequestCache保存HttpServletRequest。
默认情况下,会使用HttpSessionRequestCache。下面的代码示范了如何自定义RequestCache实现,以便在存在名为continue的参数时检查HttpSession中是否保存了请求。
只有在存在 “continue” 参数时,RequestCache 才会检查是否保存了请求。
@Bean
DefaultSecurityFilterChain springSecurity(HttpSecurity http