Spring Boot con la aplicación Single Page en AWS Elastic Beanstalk requiere una networkingirección adicional

Tengo una aplicación Spring Boot con una sola página de la aplicación React (usando React Router v4) alojada por Spring Boot. Al ejecutarlo localmente, funciona perfectamente. Está configurado para ejecutarse en el puerto 5000 por lo que va a localhost:5000 networkingirige a mi index.html Si actualizo la página, la refresca y muestra la misma página.

En AWS Elastic Beanstalk 403 no autorizado no parece networkingirigir automáticamente a mi página index.html como lo hace a nivel local.

Pude arreglar esto en AWS agregando lo siguiente:

 @Controller class ForwardingController : ErrorController { companion object { private const val ERROR_PATH = "/error" private val log = LoggerFactory.getLogger(ForwardingController::class.java) } override fun getErrorPath(): String = ERROR_PATH // This isn't used by the app under normal circumstances, but it is needed on AWS @RequestMapping(value = ERROR_PATH) fun errorRedirect(response: HttpServletResponse): String { log.debug("Redirecting to index.html with error networkingirect mapping.") return "forward:/index.html" } } 

Sin embargo, estoy confundido sobre por qué esto es necesario.

Tengo Spring Security configurado con esto:

  http .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS).and() .cors().and() .csrf().disable() .authorizeRequests() // Permit all for static resources .antMatchers("/").permitAll() .antMatchers("/*.*").permitAll() .antMatchers("/static/**").permitAll() // Security for API .antMatchers("/**/public/**").permitAll() .antMatchers("/**${PathAuth.ADMIN}/**").hasAuthority(UserType.ADMIN.authority) .anyRequest().authenticated().and() .addFilter(JwtAuthenticationFilter(authenticationManager())) .addFilter(JwtAuthorizationFilter(authenticationManager())) .exceptionHandling().accessDeniedPage("/index.html") 

Esperaba que mi event handling excepciones accessDeniedPage enviara 403s a mi página index.html. ¿Hay una mejor manera de hacer esto? ¿Por qué funciona perfectamente localmente sin el ErrorController pero falla en AWS Elastic Beanstalk?