Проблема при развертывании Spring Boot + угловое приложение - PullRequest
0 голосов
/ 09 ноября 2019

Я создал приложение Angular с бэкэндом Spring Boot, в настоящее время я работаю локально, запустив сервер на Intellij и приложение Angular с "ng serve", я хочу развернуть свое приложение на Heroku.

Iпоискал в интернете, и я увидел, что одним из первых шагов для этого является создание приложения Angular и копирование содержимого dist в src / main / resources / static.

Я скопировалсодержимого, затем попытался запустить сервер (все еще работающий локально) и получить доступ к приложению из браузера по этому адресу: "http://localhost:3000/" (я определил 3000 как порт приложения Spring Boot).

К сожалению, Я не вижу своего приложения Angular, я вижу «страницу ошибки Whitelabel»

This application has no explicit mapping for /error, so you are seeing this as a fallback.
Sat Nov 09 17:26:21 IST 2019
There was an unexpected error (type=Forbidden, status=403).
Access Denied

Я предполагаю, что я получаю сообщение об ошибке «Отказано в доступе», потому что в моем API есть «JWTAuthorizationFilter» - потребители API должны предоставить действительный веб-токен JSON взаголовок запроса.

У меня такой вопрос: Что я должен сделать, чтобы "http://localhost:3000/" возвратил Angular App и не получил доступ к API, что мне здесь не хватает?

Мое приложение имеет два контроллера (@RestController), которые имеют несколько запросов GET \ POST \ DELETE \ PUT.

И я настроил JWTAuthenticationFilter и JWTAuthorizationFilter.

Я до сих пор не понимаю, как разделение между угловым приложением и API Spring Rest выражено в развертывании проекта Java Spring.

Не могли бы вы помочь мне решить эту проблему или указать, где я могу найтиобъяснение по этому поводу?

1 Ответ

0 голосов
/ 09 ноября 2019

То, что вы пытаетесь сделать, - это обслуживать приложение Angular из встроенного контейнера сервлета tomcat с пружинной загрузкой, поэтому конфигурация безопасности влияет на конечные точки, в которых находятся статические угловые файлы.

Чтобы решить вашу проблему, вваш класс конфигурации безопасности (класс, расширяющий WebSecurityConfigurerAdapter) вы можете ограничить только ваши фактические конечные точки API, например:

http.authorizeRequests().antMatchers( "/api/**").authenticated();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...