Ошибка при попытке авторизации через Frontend UI на 3000 порту под пользователем admin: Access to fetch at 'http://localhost:8080/am/rest/v2/oauth/token' from origin 'http://localhost:3000' has been blocked by CORS policy

Добрый день!

Развернул FrontendUI на своём проекте по инструкции: https://doc.cuba-platform.com/frontend/cuba-frontend-docs/v20.1/overview/index.html
Создал новую роль с Область видимости = REST, выдал права на вход пользователю admin (даже сделал супер роль и назначил админу, на всякий случай). После запуска оба приложения работают по указанным адресам по умолчанию на порту 8080 и пускают под стандартным логином admin/admin (авторизация работает нормально):

image

Параллельно в WebStorm пытаюсь запустить react-приложение с Frontend UI командой на 3000 порту: npm run start, приложение запускается:
image

но войти под admin/admin не даёт из-за CORS-ошибки:
Access to fetch at ‘http://localhost:8080/am/rest/v2/oauth/token’ from origin ‘http://localhost:3000’ has been blocked by CORS policy: Response to preflight request doesn’t pass access control check: No ‘Access-Control-Allow-Origin’ header is present on the requested resource. If an opaque response serves your needs, set the request’s mode to ‘no-cors’ to fetch the resource with CORS disabled.

image

Перепробовал уже много всего: установку Chrome-плагина “Moesif Origin & CORS Changer”, пробовал явно прописывать в web-app.properties строчки cuba.rest.allowedOrigins = "" и cuba.rest.allowedOrigins = * (хотя в документации прописано что по умолчанию все кросс-доменные запросы разрешены: https://doc.cuba-platform.com/manual-7.0-ru/rest_api_v2_cors.html), пробовал в react-приложении в .env.production.local и .env.development.local указывать свойства CORS_ALLOW_ALL_ORIGINS=True и ALLOWED_HOSTS=[’’] - не помогло ничего. Ошибка по-прежнему возникает и на 3000 порту зайти в приложение не получается.

Подскажите, пожалуйста, как избавиться от этой проблемы.

Использую версию Cuba Platform 7.2.13, Chrome версию 89.0.4389.128, npm версию 6.14.12.
Также включен ldap-аддон, но в свойствах прописано чтобы admin заходил без доменной авторизации:
cuba.web.standardAuthenticationUsers = admin,anonymous
(и на порту 8080 всё прекрасно работает, а на 3000 нет)

Здравствуйте!
По поводу настроек REST API - проверим, возможно это баг.
Обойти можно следующим образом:

  1. В package.json добавить proxy:
{
...
  "proxy": "http://localhost:8080/",
...
}
  1. В .env.development.local указать REACT_APP_CUBA_URL=/am/rest/
1 симпатия

Помогло, большое спасибо! :+1: