Пружина загрузки с React и KeyCloak: перенаправление на страницу входа в систему KeyCloak не удастся из-за ошибки CORS (JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Пружина загрузки с React и KeyCloak: перенаправление на страницу входа в систему KeyCloak не удастся из-за ошибки CORS (

Сообщение Anonymous »

Я работаю над следующей настройкой: < /p>
  • Frontend: React on localhost: 3000 < /li>
    Бэкэнд: Spring Boot на Localhost: 8080 < /li>
    EIDC Endpoint: KeyCloak 21+ в качестве контейнера Docker (пробовал разные версии
    on localhost: 8090 < /li>
    < /ul >
    Поскольку я бэкэнд разработчик, и у меня мало опыта работы с React, я хотел, чтобы Spring обрабатывала всю аутентификацию и разрешение против KeyCloak. Таким образом, я настроил: < /p>
    spring:
    security:
    oauth2:
    client:
    registration:
    keycloak:
    clientId:
    clientSecret:
    scope: openid
    provider:
    keycloak:
    issuerUri:
    user-name-attribute: preferred_username
    < /code>
    и установите конфигурацию OAuth2: < /p>
    @Bean
    public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {

    return http
    .csrf(Customizer.withDefaults())
    .cors(Customizer.withDefaults())
    .exceptionHandling(customizer -> customizer.accessDeniedHandler(customAccessDeniedHandler()))
    .authorizeHttpRequests((customizer) -> customizer.requestMatchers(
    "/oauth2/login",
    "/oauth2/logout/success",
    "/oauth2/error",

    ).permitAll()
    .anyRequest().authenticated()
    ).oauth2Login(configurer -> {
    configurer.userInfoEndpoint(customizer -> customizer.userAuthoritiesMapper(customGrantedAuthoritiesMapper()));
    configurer.loginPage("/oauth2/login");
    configurer.defaultSuccessUrl("/oauth2/success");
    configurer.failureUrl("/oauth2/error");
    });
    }
    < /code>
    Когда я получаю доступ к какой-то защищенной конечной точке (скажем, /API /тест) из React, пружина отправляет перенаправление (на заголовок местоположения) < /p>

    http: // localhost: 8080/oauth2/login

    , который затем перенаправляет на
    BlockQuote>
    http: // localhost: 8080/oauth2/adutrization/keycloak

    , который перенаправляет на keycloak на

    http: // localhost: 8090/my-realm/protocol/openid-connect/auth? State & redirect_uri = http: // localhost: 8086/login/oauth2/code/keycloak & nonce = my-nonce*

    При вызове непосредственно из браузера, его работает нормально, и я вижу форму входа в систему, могу входить в систему и получить доступ к моим защищенным ресурсам впоследствии с правильными ролями, установленными в принципал. Но как только происхождение запроса станет моим интернет-веб-приложением, последнее перенаправление на KeyCloak не удается из-за отсутствия CORS заголовка доступа Допустимые URL -адреса ресурсов, а также веб -происхождение внутри настройки клиента KeyCloak. Но ничего не сработало, я попытался < /p>

    Установить URL -адрес frontend, не затягивая черты < /li>
    set + и добавил http: / /localhost: 3000/ * на действительные URL -адреса перенаправления
  • Установить * в качестве теста, даже если он открывает лазейки безопасности
К сожалению, KeyCloak немного изменился в прошлом (конечно), поэтому большинство статей устарели. Но, наконец, я наткнулся на этот ресурс, в котором говорилось, что эта ошибка CORS указывает «неправильный бэкэнд/реализация API или используемый поток». Это работает как описано? Должен ли я изменить свою архитектуру, чтобы React обрабатывал аутентификацию с помощью KeyCloak, отправив токен JWT на пружину?
Большое спасибо за ваше мнение и идеи.>

Подробнее здесь: https://stackoverflow.com/questions/780 ... -fails-due
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»