i-novus-llc / n2o-framework

Java и ReactJS библиотека, позволяющая создавать web приложения со сложными пользовательскими интерфейсами без глубоких знаний web технологий и frontend фреймворков. https://n2oapp.net/demo/
Apache License 2.0
45 stars 21 forks source link

Security #168

Open vladislavnikonov opened 1 year ago

vladislavnikonov commented 1 year ago

Как Настроить свойство security на keycloak? image

arifullin commented 1 year ago

Добрый день, настройка для авторизации через keycloak производится стандартно для spring приложений. В качестве quick-start можно ориентироваться на данную статью: https://www.baeldung.com/spring-boot-keycloak Для более сложной настройки лучше обратиться к документации spring-security: https://docs.spring.io/spring-security/reference/servlet/oauth2/login/core.html https://docs.spring.io/spring-security/reference/servlet/oauth2/login/advanced.html

vladislavnikonov commented 1 year ago

В самом приложение я настроил. Возникли проблемы при обращение к эндпоинтам через n2o.

net.n2oapp.framework.api.exception.N2oException: org.springframework.web.client.ResourceAccessException: I/O error on GET request for "http://localhost:8080/findAll": Unexpected character ('<' (code 60)): expected a valid value (JSON String, Number, Array, Object or token 'null', 'true' or 'false')

обращение напрямую работает без ошибок.

arifullin commented 1 year ago

Больше похоже на проблему с десериализацией, но ошибка слишком обобщённая. Можете пожалуйста предоставить пример для воспроизведения или более подробные логи как n2o приложения так и сервиса к которому оно обращается?

vladislavnikonov commented 1 year ago

server.2023-01-27.0.log

arifullin commented 1 year ago

net.n2oapp.framework.engine.data.rest.SpringRestDataProviderEngine.exchange(SpringRestDataProviderEngine.java:154) можно подебажить данный метод и посмотреть, что уходит в заголовках. Возможно не прокидывается access токен от n2o приложения до стороннего сервиса. Для проброса токена можно использовать атрибут forwarded-headers в качестве значения указав заголовок содержащий токен.

vladislavnikonov commented 1 year ago

Верно, не прокидывается access токен image Попробовал добавить атрибут, но схема его не видит image

arifullin commented 1 year ago

Какая версия n2o используется?

Тег <rest> можно использовать без указания схемы.

vladislavnikonov commented 1 year ago

7.22.1

Rgalina commented 1 year ago

Это не стабильная версия, лучше перейти на 7.23.56

arifullin commented 1 year ago

В этой версии данный функционал ещё не был внедрён. Доступен с версии 7.23.28, но лучше конечно на последнюю обновиться сразу. Если обновление версии затруднено можно использовать кастомный ClientHttpRequestInterceptor , переопределив бин SpringRestDataProviderEngine передав ему RestTemplate с данным интерцептором.

vladislavnikonov commented 1 year ago

Добрый вечер. Как сделать, чтобы не аутентифицированных пользователей перебрасывало на стандартную страницу авторизации keycloak: image

Конфиг кастомного фронта: image

Spring Security: image

А то постоянно идет обновление страницы. Также если поставить проверку на все, то перестает что-либо отображаться