Весенняя загрузка с одностраничным приложением на AWS Elastic Beanstalk требует дополнительной перенаправления

У меня есть приложение Spring Boot с одностраничным React-приложением (с использованием React Router v4), которое было организовано самой Spring Boot. При работе на локальном компьютере он работает отлично. Он настроен на работу на порту 5000 поэтому переходим к localhost:5000 перенаправляет на мой index.html Если я обновляю страницу, она обновляет страницу и отображает одну и ту же страницу.

На AWS Elastic Beanstalk 403 Неавторизованный, по-видимому, автоматически не перенаправляет на мою страницу index.html, как это происходит локально.

Я смог исправить это на AWS, добавив следующее:

 @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 redirect mapping.") return "forward:/index.html" } } 

Я смущен тем, почему это необходимо.

У меня Spring Security настроена следующим образом:

  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") 

Я ожидал, что accessDeniedPage исключительных accessDeniedPage пересылает 403s на мою страницу index.html. Есть лучший способ сделать это? Почему он работает ErrorController локально без ErrorController но не работает на AWS Elastic Beanstalk?

Переадресация ошибок приводит к тому, что в браузере ошибочно сообщается о реальных ошибках, поэтому лучшее решение, чем мой переадресационный взлом, было бы хорошим!